)]}'
{"ceilometer/tests/storage/test_storage_scenarios.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"caaeff79dbe43adc7494e421c60c049e6433eb73","unresolved":false,"context_lines":[{"line_number":701,"context_line":"        self.assertEqual(6, len(results))"},{"line_number":702,"context_line":""},{"line_number":703,"context_line":"    @tests_db.run_with(\u0027sqlite\u0027, \u0027mysql\u0027, \u0027pgsql\u0027)"},{"line_number":704,"context_line":"    def test_record_metering_data_retry_on_deadlock(self):"},{"line_number":705,"context_line":""},{"line_number":706,"context_line":"        self.CONF \u003d self.useFixture(fixture_config.Config()).conf"},{"line_number":707,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_45ede6ee","line":704,"updated":"2015-03-24 08:35:40.000000000","message":"It seems that this test is not cover all features of decorator that you\u0027ve added probably it could be useful here to add a function for side effect that will return dbexc.DBDeadlock after first call and will write sample in second attempt. It could be written in similar way like in str 3623 ... WDYT?","commit_id":"b31bc4da5cd3c2f6b543ed0dd93766681071fdf2"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"4e71707e1e96ea108f29d0b7c3f4a215976f4a1d","unresolved":false,"context_lines":[{"line_number":734,"context_line":""},{"line_number":735,"context_line":"        self.conn.record_metering_data(msg)"},{"line_number":736,"context_line":"        f \u003d storage.SampleFilter(meter\u003d\u0027instance\u0027)"},{"line_number":737,"context_line":"        results \u003d list(self.conn.get_samples(f))"},{"line_number":738,"context_line":"        self.assertEqual(13, len(results))"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"    @tests_db.run_with(\u0027sqlite\u0027, \u0027mysql\u0027, \u0027pgsql\u0027, \u0027hbase\u0027, \u0027db2\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_3c38ee9f","line":737,"updated":"2015-03-24 15:41:10.000000000","message":"i think we should still verify that retry was called at some point. and maybe the case where we hit max retries","commit_id":"979ccfaecb9cbfd3506b61a97f90aa37eda73441"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"6099fe9169f389b3709d55f3ca5c9596e1473c7b","unresolved":false,"context_lines":[{"line_number":712,"context_line":"    @tests_db.run_with(\u0027sqlite\u0027, \u0027mysql\u0027, \u0027pgsql\u0027)"},{"line_number":713,"context_line":"    def test_record_metering_data_retry_success_on_deadlock(self):"},{"line_number":714,"context_line":"        raise_deadlock \u003d [False, True]"},{"line_number":715,"context_line":"        self.CONF \u003d self.useFixture(fixture_config.Config()).conf"},{"line_number":716,"context_line":"        self.CONF.set_override(\u0027max_retries\u0027, 2, group\u003d\u0027database\u0027)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"        s \u003d sample.Sample(\u0027instance\u0027, sample.TYPE_CUMULATIVE, unit\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6ced46_3d81b64a","line":715,"updated":"2015-03-25 01:40:59.000000000","message":"IIUC, this line is not needed, the parent class have already done it, see https://github.com/openstack/ceilometer/blob/e5f9745db5da15068264b52a4e1e1bf56e6807ba/ceilometer/tests/db.py#L203","commit_id":"0fcc3cec731a6fe2f081f63395c0051bad362dcb"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"6099fe9169f389b3709d55f3ca5c9596e1473c7b","unresolved":false,"context_lines":[{"line_number":744,"context_line":"    @tests_db.run_with(\u0027sqlite\u0027, \u0027mysql\u0027, \u0027pgsql\u0027)"},{"line_number":745,"context_line":"    def test_record_metering_data_retry_failure_on_deadlock(self):"},{"line_number":746,"context_line":"        raise_deadlock \u003d [True, True, True]"},{"line_number":747,"context_line":"        self.CONF \u003d self.useFixture(fixture_config.Config()).conf"},{"line_number":748,"context_line":"        self.CONF.set_override(\u0027max_retries\u0027, 3, group\u003d\u0027database\u0027)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"        s \u003d sample.Sample(\u0027instance\u0027, sample.TYPE_CUMULATIVE, unit\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6ced46_5d975290","line":747,"updated":"2015-03-25 01:40:59.000000000","message":"ditto","commit_id":"0fcc3cec731a6fe2f081f63395c0051bad362dcb"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"c0d0fa465f327b255cb1afc3f3647c31641d5016","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    @staticmethod"},{"line_number":481,"context_line":"    def create_side_effect(method, test_exception):"},{"line_number":482,"context_line":"        def side_effect(*args, **kwargs):"},{"line_number":483,"context_line":"            if test_exception.pop():"},{"line_number":484,"context_line":"                raise dbexc.DBDeadlock()"},{"line_number":485,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6ced46_3107f91a","line":482,"updated":"2015-03-25 19:54:25.000000000","message":"I was just wondering, if it would make more sense to rename this side_effect function to something more specific like dBdeadlock_effect or something? because side_effect seems to be more generic when it is just raising DBDeadlock exception specifically.","commit_id":"b5a4aaf81a055559334f88134d0484654d37250c"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"4d4e5f30f5c92c9a17183cc846b7e35e134ecd63","unresolved":false,"context_lines":[{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    @staticmethod"},{"line_number":481,"context_line":"    def create_side_effect(method, test_exception):"},{"line_number":482,"context_line":"        def side_effect(*args, **kwargs):"},{"line_number":483,"context_line":"            if test_exception.pop():"},{"line_number":484,"context_line":"                raise dbexc.DBDeadlock()"},{"line_number":485,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6ced46_3a2ee943","line":482,"in_reply_to":"1a6ced46_3107f91a","updated":"2015-03-26 00:00:09.000000000","message":"I agree with Atul. I would call it along the lines of create_db_deadlock.","commit_id":"b5a4aaf81a055559334f88134d0484654d37250c"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"bf5e05f08fdf477edcc1cd4598892cc9480f9769","unresolved":false,"context_lines":[{"line_number":478,"context_line":"                    tests_db.MixinTestsWithBackendScenarios):"},{"line_number":479,"context_line":""},{"line_number":480,"context_line":"    @staticmethod"},{"line_number":481,"context_line":"    def create_side_effect(method, exception_type, test_exception):"},{"line_number":482,"context_line":"        def side_effect(*args, **kwargs):"},{"line_number":483,"context_line":"            if test_exception.pop():"},{"line_number":484,"context_line":"                raise exception_type"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_a8165f53","line":481,"updated":"2015-03-26 14:19:41.000000000","message":"(nit) but since we\u0027re adding flexibility we might as well just reuse this and remove the similar code below ~line3668","commit_id":"8aaecb92ef9a20b25e836851dabd3a984f4ea224"}]}
