)]}'
{"cinder/tests/unit/api/v2/fakes.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":37,"context_line":"DEFAULT_AZ \u003d \"fakeaz\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def create_volume(id, **kwargs):"},{"line_number":41,"context_line":"    volume \u003d {"},{"line_number":42,"context_line":"        \u0027id\u0027: id,"},{"line_number":43,"context_line":"        \u0027user_id\u0027: fake.USER_ID,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_b2e4df0d","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":17},"updated":"2016-10-11 10:19:37.000000000","message":"nit: This is not a good name, since it is not creating a volume, it\u0027s just creating a dictionary.  Probably fake_volume would be a better name.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":37,"context_line":"DEFAULT_AZ \u003d \"fakeaz\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def create_volume(id, **kwargs):"},{"line_number":41,"context_line":"    volume \u003d {"},{"line_number":42,"context_line":"        \u0027id\u0027: id,"},{"line_number":43,"context_line":"        \u0027user_id\u0027: fake.USER_ID,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_bff2b8d0","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":17},"in_reply_to":"fa6399be_b2e4df0d","updated":"2016-10-12 10:01:38.000000000","message":"There is a module named fake_volume imported at L23. I change to create_fake_volume.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5e662910617910a5a9e6a6df7a7588c2603b1d17","unresolved":false,"context_lines":[{"line_number":37,"context_line":"DEFAULT_AZ \u003d \"fakeaz\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def create_volume(id, **kwargs):"},{"line_number":41,"context_line":"    volume \u003d {"},{"line_number":42,"context_line":"        \u0027id\u0027: id,"},{"line_number":43,"context_line":"        \u0027user_id\u0027: fake.USER_ID,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_0dd5051b","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":17},"in_reply_to":"fa6399be_bff2b8d0","updated":"2016-10-13 09:40:20.000000000","message":"Another alternative would have been to change the import:\n\n from cinder.tests.unit import fake_volume as fake_vol\n\nThe name is a little long now, but it\u0027s a clear name, so that\u0027s good.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"}],"cinder/tests/unit/api/v2/test_snapshots.py":[{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"7c858efd74e97a5b19e240c28c3e8208a2209b3b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        for patcher in self.orig_mocks:"},{"line_number":94,"context_line":"            patcher.start()"},{"line_number":95,"context_line":"            self.addCleanup(patcher.stop)"},{"line_number":96,"context_line":"        self.orig_mocks \u003d []"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_e7cbf470","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":23},"updated":"2016-08-26 10:47:56.000000000","message":"Please move this statement inside the for loop. \nNo need to reset orig_mocks to empty, if its empty already.","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"118925e94cd7889da23d165ea9d25ac4761399a3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        for patcher in self.orig_mocks:"},{"line_number":94,"context_line":"            patcher.start()"},{"line_number":95,"context_line":"            self.addCleanup(patcher.stop)"},{"line_number":96,"context_line":"        self.orig_mocks \u003d []"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_b3411d0e","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":23},"in_reply_to":"fa7ab95a_255eb1e9","updated":"2016-08-26 15:11:26.000000000","message":"You are right about that, rather what I was trying to suggest is about the case where orig_mocks is empty. \nMaybe we should put above statements in a\nif self.orig_macks:","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"ecc3d1d98ad7c5f2c988ff6d4faa534876e54935","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        for patcher in self.orig_mocks:"},{"line_number":94,"context_line":"            patcher.start()"},{"line_number":95,"context_line":"            self.addCleanup(patcher.stop)"},{"line_number":96,"context_line":"        self.orig_mocks \u003d []"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_255eb1e9","line":96,"range":{"start_line":96,"start_character":13,"end_line":96,"end_character":23},"in_reply_to":"fa7ab95a_e7cbf470","updated":"2016-08-26 11:52:39.000000000","message":"I\u0027m not sure I understand your suggestion. But moving this statement into the for loop seems not correct.","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"7c858efd74e97a5b19e240c28c3e8208a2209b3b","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""},{"line_number":100,"context_line":"        orig_attr \u003d getattr(obj, attr_name)"},{"line_number":101,"context_line":"        if orig_attr is not None:"},{"line_number":102,"context_line":"            rev_patcher \u003d mock.patch.object(obj, attr_name, orig_attr)"},{"line_number":103,"context_line":"            self.orig_mocks.append(rev_patcher)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_e765b4e1","line":100,"range":{"start_line":100,"start_character":20,"end_line":100,"end_character":27},"updated":"2016-08-26 10:47:56.000000000","message":"Please put this in a try block, or use default value as None.","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"ecc3d1d98ad7c5f2c988ff6d4faa534876e54935","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""},{"line_number":100,"context_line":"        orig_attr \u003d getattr(obj, attr_name)"},{"line_number":101,"context_line":"        if orig_attr is not None:"},{"line_number":102,"context_line":"            rev_patcher \u003d mock.patch.object(obj, attr_name, orig_attr)"},{"line_number":103,"context_line":"            self.orig_mocks.append(rev_patcher)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_e5e7693e","line":100,"range":{"start_line":100,"start_character":20,"end_line":100,"end_character":27},"in_reply_to":"fa7ab95a_e765b4e1","updated":"2016-08-26 11:52:39.000000000","message":"Done","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"7c858efd74e97a5b19e240c28c3e8208a2209b3b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""},{"line_number":100,"context_line":"        orig_attr \u003d getattr(obj, attr_name)"},{"line_number":101,"context_line":"        if orig_attr is not None:"},{"line_number":102,"context_line":"            rev_patcher \u003d mock.patch.object(obj, attr_name, orig_attr)"},{"line_number":103,"context_line":"            self.orig_mocks.append(rev_patcher)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_479bc0c9","line":101,"range":{"start_line":101,"start_character":11,"end_line":101,"end_character":20},"updated":"2016-08-26 10:47:56.000000000","message":"Better to check like this\nif orig_attr:","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"ecc3d1d98ad7c5f2c988ff6d4faa534876e54935","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":99,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""},{"line_number":100,"context_line":"        orig_attr \u003d getattr(obj, attr_name)"},{"line_number":101,"context_line":"        if orig_attr is not None:"},{"line_number":102,"context_line":"            rev_patcher \u003d mock.patch.object(obj, attr_name, orig_attr)"},{"line_number":103,"context_line":"            self.orig_mocks.append(rev_patcher)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_25d07153","line":101,"range":{"start_line":101,"start_character":11,"end_line":101,"end_character":20},"in_reply_to":"fa7ab95a_479bc0c9","updated":"2016-08-26 11:52:39.000000000","message":"Done","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all_by_project\u0027,"},{"line_number":332,"context_line":"                       v2_fakes.fake_snapshot_get_all_by_project)"},{"line_number":333,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all\u0027,"},{"line_number":334,"context_line":"                       v2_fakes.fake_snapshot_get_all)"},{"line_number":335,"context_line":"    @mock.patch(\u0027cinder.db.snapshot_metadata_get\u0027, return_value\u003ddict())"},{"line_number":336,"context_line":"    def test_admin_list_snapshots_limited_to_project(self,"},{"line_number":337,"context_line":"                                                     snapshot_metadata_get):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_1c48f286","line":334,"updated":"2016-09-06 11:28:18.000000000","message":"I think it is better to use self.mock_object() instead of the decorator. It has better readability and allows integration with @ddt if needed in the future.","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"233972ed0c8ed977f9d1678ee0f17ab232c0ae22","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all_by_project\u0027,"},{"line_number":332,"context_line":"                       v2_fakes.fake_snapshot_get_all_by_project)"},{"line_number":333,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all\u0027,"},{"line_number":334,"context_line":"                       v2_fakes.fake_snapshot_get_all)"},{"line_number":335,"context_line":"    @mock.patch(\u0027cinder.db.snapshot_metadata_get\u0027, return_value\u003ddict())"},{"line_number":336,"context_line":"    def test_admin_list_snapshots_limited_to_project(self,"},{"line_number":337,"context_line":"                                                     snapshot_metadata_get):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_288f21cd","line":334,"in_reply_to":"9a89bdaa_1c48f286","updated":"2016-09-12 11:08:03.000000000","message":"IMO, using mock decorator is better. So I would want to hear more opinions from other reviewers before making any change.","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d9685a355d2f5605d8260c7ba5abddd71be2f4e2","unresolved":false,"context_lines":[{"line_number":331,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all_by_project\u0027,"},{"line_number":332,"context_line":"                       v2_fakes.fake_snapshot_get_all_by_project)"},{"line_number":333,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all\u0027,"},{"line_number":334,"context_line":"                       v2_fakes.fake_snapshot_get_all)"},{"line_number":335,"context_line":"    @mock.patch(\u0027cinder.db.snapshot_metadata_get\u0027, return_value\u003ddict())"},{"line_number":336,"context_line":"    def test_admin_list_snapshots_limited_to_project(self,"},{"line_number":337,"context_line":"                                                     snapshot_metadata_get):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_4be9bf19","line":334,"in_reply_to":"9a89bdaa_288f21cd","updated":"2016-09-12 11:11:03.000000000","message":"Sure, not big deal.","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":517,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all_by_project\u0027,"},{"line_number":518,"context_line":"                       v2_fakes.fake_snapshot_get_all_by_project)"},{"line_number":519,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all\u0027,"},{"line_number":520,"context_line":"                       v2_fakes.fake_snapshot_get_all)"},{"line_number":521,"context_line":"    @mock.patch(\u0027cinder.db.snapshot_metadata_get\u0027, return_value\u003ddict())"},{"line_number":522,"context_line":"    def test_admin_list_snapshots_all_tenants(self, snapshot_metadata_get):"},{"line_number":523,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/%s/snapshots?all_tenants\u003d1\u0027 %"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_7c59fe59","line":520,"updated":"2016-09-06 11:28:18.000000000","message":"Same","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        self.assertEqual(1, len(res[\u0027snapshots\u0027]))"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all_by_project\u0027,"},{"line_number":552,"context_line":"                       v2_fakes.fake_snapshot_get_all_by_project)"},{"line_number":553,"context_line":"    @mock.patch(\u0027cinder.db.snapshot_metadata_get\u0027, return_value\u003ddict())"},{"line_number":554,"context_line":"    def test_all_tenants_non_admin_gets_all_tenants(self,"},{"line_number":555,"context_line":"                                                    snapshot_metadata_get):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_bc31c60d","line":552,"updated":"2016-09-06 11:28:18.000000000","message":"Ditto","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":562,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all_by_project\u0027,"},{"line_number":563,"context_line":"                       v2_fakes.fake_snapshot_get_all_by_project)"},{"line_number":564,"context_line":"    @mock.patch.object(db, \u0027snapshot_get_all\u0027,"},{"line_number":565,"context_line":"                       v2_fakes.fake_snapshot_get_all)"},{"line_number":566,"context_line":"    @mock.patch(\u0027cinder.db.snapshot_metadata_get\u0027, return_value\u003ddict())"},{"line_number":567,"context_line":"    def test_non_admin_get_by_project(self, snapshot_metadata_get):"},{"line_number":568,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/%s/snapshots\u0027 % fake.PROJECT_ID)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_dc34cafc","line":565,"updated":"2016-09-06 11:28:18.000000000","message":"Same","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"}],"cinder/tests/unit/api/v2/test_volume_metadata.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    return fake_volume.fake_volume_obj(args[0], **vol)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def return_volume_nonexistent(*args, **kwargs):"},{"line_number":120,"context_line":"    raise exception.VolumeNotFound(\u0027bogus test message\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_920c3b44","side":"PARENT","line":119,"updated":"2016-10-11 10:19:37.000000000","message":"-1: I don\u0027t see any improvement removing this from here and then writing it a bunch of times in the mocking themselves.  I actually think it\u0027s worse.\n\nI think this should be left and used instead like it\u0027s been done in other files of this patch.","commit_id":"0d88d7236212ac2baecf0dde5dcdaa36c0be8e5f"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    return fake_volume.fake_volume_obj(args[0], **vol)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"def return_volume_nonexistent(*args, **kwargs):"},{"line_number":120,"context_line":"    raise exception.VolumeNotFound(\u0027bogus test message\u0027)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_bffd583c","side":"PARENT","line":119,"in_reply_to":"fa6399be_920c3b44","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"0d88d7236212ac2baecf0dde5dcdaa36c0be8e5f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.mock_object(volume.api.API, \u0027get\u0027, get_volume)"},{"line_number":112,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":113,"context_line":"                         return_volume_metadata)"},{"line_number":114,"context_line":"        self.mock_object(db, \u0027service_get_all\u0027,"},{"line_number":115,"context_line":"                         return_value\u003dv2_fakes.fake_service_get_all_by_topic("},{"line_number":116,"context_line":"                             None, None))"},{"line_number":117,"context_line":"        self.mock_object(self.volume_api, \u0027update_volume_metadata\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.ext_mgr \u003d extensions.ExtensionManager()"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_b2869fb7","line":116,"range":{"start_line":114,"start_character":1,"end_line":116,"end_character":41},"updated":"2016-10-11 10:19:37.000000000","message":"-1: This is not necessary, as patch method is already using mock, and it\u0027s removing some checks that are done by mock when using autospec.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"5e662910617910a5a9e6a6df7a7588c2603b1d17","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.mock_object(volume.api.API, \u0027get\u0027, get_volume)"},{"line_number":112,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":113,"context_line":"                         return_volume_metadata)"},{"line_number":114,"context_line":"        self.mock_object(db, \u0027service_get_all\u0027,"},{"line_number":115,"context_line":"                         return_value\u003dv2_fakes.fake_service_get_all_by_topic("},{"line_number":116,"context_line":"                             None, None))"},{"line_number":117,"context_line":"        self.mock_object(self.volume_api, \u0027update_volume_metadata\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.ext_mgr \u003d extensions.ExtensionManager()"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_8da595a3","line":116,"range":{"start_line":114,"start_character":1,"end_line":116,"end_character":41},"in_reply_to":"fa6399be_82de776b","updated":"2016-10-13 09:40:20.000000000","message":"Although it\u0027s sometimes best to minimize changes I agree that consistency here is a good reason.  :-)","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.mock_object(volume.api.API, \u0027get\u0027, get_volume)"},{"line_number":112,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":113,"context_line":"                         return_volume_metadata)"},{"line_number":114,"context_line":"        self.mock_object(db, \u0027service_get_all\u0027,"},{"line_number":115,"context_line":"                         return_value\u003dv2_fakes.fake_service_get_all_by_topic("},{"line_number":116,"context_line":"                             None, None))"},{"line_number":117,"context_line":"        self.mock_object(self.volume_api, \u0027update_volume_metadata\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        self.ext_mgr \u003d extensions.ExtensionManager()"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_82de776b","line":116,"range":{"start_line":114,"start_character":1,"end_line":116,"end_character":41},"in_reply_to":"fa6399be_b2869fb7","updated":"2016-10-12 10:01:38.000000000","message":"I understand, just for cosmetic reason, seems ugly to mix mock_object() and patch() in a same place.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_index_nonexistent_volume(self):"},{"line_number":150,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":151,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":152,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":153,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url)"},{"line_number":154,"context_line":"        self.assertRaises(exception.VolumeNotFound,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_c51d0b68","line":151,"updated":"2016-10-11 10:19:37.000000000","message":"-1: Don\u0027t remove method return_volume_nonexistent and use it as a replacement.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_index_nonexistent_volume(self):"},{"line_number":150,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":151,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":152,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":153,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url)"},{"line_number":154,"context_line":"        self.assertRaises(exception.VolumeNotFound,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_bfab981c","line":151,"in_reply_to":"fa6399be_c51d0b68","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_show_nonexistent_volume(self):"},{"line_number":172,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":173,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":174,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":175,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url + \u0027/key2\u0027)"},{"line_number":176,"context_line":"        self.assertRaises(exception.VolumeNotFound,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_a56577e2","line":173,"updated":"2016-10-11 10:19:37.000000000","message":"ditto","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_show_nonexistent_volume(self):"},{"line_number":172,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":173,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":174,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":175,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url + \u0027/key2\u0027)"},{"line_number":176,"context_line":"        self.assertRaises(exception.VolumeNotFound,"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_3f6ea801","line":173,"in_reply_to":"fa6399be_a56577e2","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        fake_volume \u003d objects.Volume(id\u003dself.req_id, status\u003d\u0027available\u0027)"},{"line_number":225,"context_line":"        fake_context \u003d mock.Mock()"},{"line_number":226,"context_line":"        metadata_get.side_effect \u003d return_volume_metadata"},{"line_number":227,"context_line":"        metadata_delete.side_effect \u003d exception.VolumeNotFound("},{"line_number":228,"context_line":"            \u0027bogus test message\u0027)"},{"line_number":229,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url + \u0027/key1\u0027)"},{"line_number":230,"context_line":"        req.method \u003d \u0027DELETE\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_e55f6f0c","line":227,"updated":"2016-10-11 10:19:37.000000000","message":"ditto","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        fake_volume \u003d objects.Volume(id\u003dself.req_id, status\u003d\u0027available\u0027)"},{"line_number":225,"context_line":"        fake_context \u003d mock.Mock()"},{"line_number":226,"context_line":"        metadata_get.side_effect \u003d return_volume_metadata"},{"line_number":227,"context_line":"        metadata_delete.side_effect \u003d exception.VolumeNotFound("},{"line_number":228,"context_line":"            \u0027bogus test message\u0027)"},{"line_number":229,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url + \u0027/key1\u0027)"},{"line_number":230,"context_line":"        req.method \u003d \u0027DELETE\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_df7dacb2","line":227,"in_reply_to":"fa6399be_e55f6f0c","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_create_nonexistent_volume(self):"},{"line_number":363,"context_line":"        self.mock_object(volume.api.API, \u0027get\u0027,"},{"line_number":364,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":365,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":366,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":367,"context_line":"                         return_volume_metadata)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_25a087f4","line":364,"updated":"2016-10-11 10:19:37.000000000","message":"ditto","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_create_nonexistent_volume(self):"},{"line_number":363,"context_line":"        self.mock_object(volume.api.API, \u0027get\u0027,"},{"line_number":364,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":365,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":366,"context_line":"        self.mock_object(db, \u0027volume_metadata_get\u0027,"},{"line_number":367,"context_line":"                         return_volume_metadata)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_5f48bc87","line":364,"in_reply_to":"fa6399be_25a087f4","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    def test_update_all_nonexistent_volume(self):"},{"line_number":514,"context_line":"        self.mock_object(db, \u0027volume_get\u0027,"},{"line_number":515,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":516,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":517,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url)"},{"line_number":518,"context_line":"        req.method \u003d \u0027PUT\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_85af93e2","line":515,"updated":"2016-10-11 10:19:37.000000000","message":"ditto","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":512,"context_line":""},{"line_number":513,"context_line":"    def test_update_all_nonexistent_volume(self):"},{"line_number":514,"context_line":"        self.mock_object(db, \u0027volume_get\u0027,"},{"line_number":515,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":516,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":517,"context_line":"        req \u003d fakes.HTTPRequest.blank(self.url)"},{"line_number":518,"context_line":"        req.method \u003d \u0027PUT\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_df54cc22","line":515,"in_reply_to":"fa6399be_85af93e2","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    def test_update_item_nonexistent_volume(self):"},{"line_number":568,"context_line":"        self.mock_object(db, \u0027volume_get\u0027,"},{"line_number":569,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":570,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":571,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":572,"context_line":"            \u0027/v2/%s/volumes/asdf/metadata/key1\u0027 % fake.PROJECT_ID)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_c5b98b30","line":569,"updated":"2016-10-11 10:19:37.000000000","message":"ditto","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    def test_update_item_nonexistent_volume(self):"},{"line_number":568,"context_line":"        self.mock_object(db, \u0027volume_get\u0027,"},{"line_number":569,"context_line":"                         side_effect\u003dexception.VolumeNotFound("},{"line_number":570,"context_line":"                             \u0027bogus test message\u0027))"},{"line_number":571,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":572,"context_line":"            \u0027/v2/%s/volumes/asdf/metadata/key1\u0027 % fake.PROJECT_ID)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_7f2660cf","line":569,"in_reply_to":"fa6399be_c5b98b30","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"}],"cinder/tests/unit/api/v2/test_volumes.py":[{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"7c858efd74e97a5b19e240c28c3e8208a2209b3b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        for patcher in self.orig_mocks:"},{"line_number":71,"context_line":"            patcher.start()"},{"line_number":72,"context_line":"            self.addCleanup(patcher.stop)"},{"line_number":73,"context_line":"        self.orig_mocks \u003d []"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":76,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_a7a48c57","line":73,"range":{"start_line":73,"start_character":13,"end_line":73,"end_character":23},"updated":"2016-08-26 10:47:56.000000000","message":"Please check comments given in\n cinder/tests/unit/api/v2/test_snapshots.py","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"ecc3d1d98ad7c5f2c988ff6d4faa534876e54935","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        for patcher in self.orig_mocks:"},{"line_number":71,"context_line":"            patcher.start()"},{"line_number":72,"context_line":"            self.addCleanup(patcher.stop)"},{"line_number":73,"context_line":"        self.orig_mocks \u003d []"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":76,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_65f3590b","line":73,"range":{"start_line":73,"start_character":13,"end_line":73,"end_character":23},"in_reply_to":"fa7ab95a_a7a48c57","updated":"2016-08-26 11:52:39.000000000","message":"Done","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":22257,"name":"Manish","email":"deolalkar.manish@hpe.com","username":"manishd"},"change_message_id":"7c858efd74e97a5b19e240c28c3e8208a2209b3b","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":76,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""},{"line_number":77,"context_line":"        orig_attr \u003d getattr(obj, attr_name)"},{"line_number":78,"context_line":"        if orig_attr is not None:"},{"line_number":79,"context_line":"            rev_patcher \u003d mock.patch.object(obj, attr_name, orig_attr)"},{"line_number":80,"context_line":"            self.orig_mocks.append(rev_patcher)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_c78990cc","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":8},"updated":"2016-08-26 10:47:56.000000000","message":"Please check comments given in\n cinder/tests/unit/api/v2/test_snapshots.py","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"ecc3d1d98ad7c5f2c988ff6d4faa534876e54935","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def mock_object(self, obj, attr_name, new_attr\u003dNone, **kwargs):"},{"line_number":76,"context_line":"        \"\"\"Override mock_object() to allow to unset mocks.\"\"\""},{"line_number":77,"context_line":"        orig_attr \u003d getattr(obj, attr_name)"},{"line_number":78,"context_line":"        if orig_attr is not None:"},{"line_number":79,"context_line":"            rev_patcher \u003d mock.patch.object(obj, attr_name, orig_attr)"},{"line_number":80,"context_line":"            self.orig_mocks.append(rev_patcher)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_85f85de7","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":8},"in_reply_to":"fa7ab95a_c78990cc","updated":"2016-08-26 11:52:39.000000000","message":"Done","commit_id":"b45d19d71007788a20b8bae32e30c8dfb859bb53"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    @mock.patch.object(db, \u0027volume_get_all\u0027, v2_fakes.fake_volume_get_all)"},{"line_number":81,"context_line":"    @mock.patch.object(db, \u0027service_get_all\u0027,"},{"line_number":82,"context_line":"                       return_value\u003dv2_fakes.fake_service_get_all_by_topic("},{"line_number":83,"context_line":"                           None, None))"},{"line_number":84,"context_line":"    @mock.patch("},{"line_number":85,"context_line":"        \u0027cinder.api.openstack.wsgi.Controller.validate_name_and_description\u0027)"},{"line_number":86,"context_line":"    def test_volume_create_with_type(self, mock_validate, mock_service_get):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_37b07143","line":83,"updated":"2016-09-06 11:28:18.000000000","message":"self.mock_object()","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":1430,"context_line":""},{"line_number":1431,"context_line":"    @mock.patch.object(db, \u0027volume_get_all\u0027, v2_fakes.fake_volume_get_all)"},{"line_number":1432,"context_line":"    @mock.patch.object(db, \u0027volume_get_all_by_project\u0027,"},{"line_number":1433,"context_line":"                       v2_fakes.fake_volume_get_all_by_project)"},{"line_number":1434,"context_line":"    def test_admin_list_volumes_all_tenants(self):"},{"line_number":1435,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":1436,"context_line":"            \u0027/v2/%s/volumes?all_tenants\u003d1\u0027 % fake.PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_77911999","line":1433,"updated":"2016-09-06 11:28:18.000000000","message":"same","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"092a7ed728e00ed710cd7ac7dc34f2d6175bd88c","unresolved":false,"context_lines":[{"line_number":1442,"context_line":"    @mock.patch.object(db, \u0027volume_get_all\u0027, v2_fakes.fake_volume_get_all)"},{"line_number":1443,"context_line":"    @mock.patch.object(db, \u0027volume_get_all_by_project\u0027,"},{"line_number":1444,"context_line":"                       v2_fakes.fake_volume_get_all_by_project)"},{"line_number":1445,"context_line":"    @mock.patch.object(volume_api.API, \u0027get\u0027, v2_fakes.fake_volume_get)"},{"line_number":1446,"context_line":"    def test_all_tenants_non_admin_gets_all_tenants(self):"},{"line_number":1447,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":1448,"context_line":"            \u0027/v2/%s/volumes?all_tenants\u003d1\u0027 % fake.PROJECT_ID)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_d7eca52b","line":1445,"updated":"2016-09-06 11:28:18.000000000","message":"same","commit_id":"a9399b3aa6ae497ac45e4f3058f39de7d3fd798a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.assertTrue(mock_validate.called)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @mock.patch.object(db, \u0027volume_get_all\u0027, v2_fakes.fake_volume_get_all)"},{"line_number":81,"context_line":"    @mock.patch.object(db, \u0027service_get_all\u0027,"},{"line_number":82,"context_line":"                       return_value\u003dv2_fakes.fake_service_get_all_by_topic("},{"line_number":83,"context_line":"                           None, None))"},{"line_number":84,"context_line":"    @mock.patch("}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_8572337b","line":81,"updated":"2016-10-11 10:19:37.000000000","message":"-1: You are removing the autospec\u003dTrue parameter.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.assertTrue(mock_validate.called)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @mock.patch.object(db, \u0027volume_get_all\u0027, v2_fakes.fake_volume_get_all)"},{"line_number":81,"context_line":"    @mock.patch.object(db, \u0027service_get_all\u0027,"},{"line_number":82,"context_line":"                       return_value\u003dv2_fakes.fake_service_get_all_by_topic("},{"line_number":83,"context_line":"                           None, None))"},{"line_number":84,"context_line":"    @mock.patch("}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_02dee710","line":81,"in_reply_to":"fa6399be_8572337b","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        vol_obj \u003d fake_volume.fake_volume_obj(context.get_admin_context(),"},{"line_number":119,"context_line":"                                              **vol_db)"},{"line_number":120,"context_line":"        self.mock_object(volume_api.API, \u0027get_all\u0027,"},{"line_number":121,"context_line":"                         return_value\u003dobjects.VolumeList(objects\u003d[vol_obj]))"},{"line_number":122,"context_line":"        # NOTE(geguileo): This is required because common get_by_id method in"},{"line_number":123,"context_line":"        # cinder.db.sqlalchemy.api caches the real get method."},{"line_number":124,"context_line":"        db.sqlalchemy.api._GET_METHODS \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_a5f657d5","line":121,"updated":"2016-10-11 10:19:37.000000000","message":"nice change!!","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"517cfcdc395f7b4dd53e50499910605d1068bf68","unresolved":false,"context_lines":[{"line_number":1477,"context_line":"        self.assertEqual(1, len(res[\u0027volumes\u0027]))"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"    def test_non_admin_get_by_project(self):"},{"line_number":1480,"context_line":"        self.mock_object(db, \u0027volume_get_all_by_project\u0027,"},{"line_number":1481,"context_line":"                         v2_fakes.fake_volume_get_all_by_project)"},{"line_number":1482,"context_line":"        self.mock_object(volume_api.API, \u0027get\u0027, v2_fakes.fake_volume_get)"},{"line_number":1483,"context_line":""},{"line_number":1484,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/%s/volumes\u0027 % fake.PROJECT_ID)"},{"line_number":1485,"context_line":"        res \u003d self.controller.index(req)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_65035f74","line":1482,"range":{"start_line":1480,"start_character":0,"end_line":1482,"end_character":73},"updated":"2016-10-11 10:19:37.000000000","message":"-1: We should try to be consistent, these last 3 tests should be changed in the same way, not 2 using decorators and another using mock_object method.","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a4e5ced66a7bdecc87c33ebff36a117103844c43","unresolved":false,"context_lines":[{"line_number":1477,"context_line":"        self.assertEqual(1, len(res[\u0027volumes\u0027]))"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"    def test_non_admin_get_by_project(self):"},{"line_number":1480,"context_line":"        self.mock_object(db, \u0027volume_get_all_by_project\u0027,"},{"line_number":1481,"context_line":"                         v2_fakes.fake_volume_get_all_by_project)"},{"line_number":1482,"context_line":"        self.mock_object(volume_api.API, \u0027get\u0027, v2_fakes.fake_volume_get)"},{"line_number":1483,"context_line":""},{"line_number":1484,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v2/%s/volumes\u0027 % fake.PROJECT_ID)"},{"line_number":1485,"context_line":"        res \u003d self.controller.index(req)"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa6399be_0296e7ef","line":1482,"range":{"start_line":1480,"start_character":0,"end_line":1482,"end_character":73},"in_reply_to":"fa6399be_65035f74","updated":"2016-10-12 10:01:38.000000000","message":"Done","commit_id":"03d8241bf8279677a737d45f8c5001d43c634549"}]}
