)]}'
{"nova/tests/unit/api/openstack/compute/test_create_backup.py":[{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"72ae02cf29bfa6a829b750b35e698cd93bc171bb","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            ),"},{"line_number":294,"context_line":"        }"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027get\u0027)"},{"line_number":297,"context_line":"        self.mox.StubOutWithMock(common,"},{"line_number":298,"context_line":"                                 \u0027check_img_metadata_properties_quota\u0027)"},{"line_number":299,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027backup\u0027)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        common.check_img_metadata_properties_quota(self.context, {})"},{"line_number":302,"context_line":"        self._test_invalid_state(\u0027_create_backup\u0027, method\u003d\u0027backup\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_3c4cf241","line":299,"range":{"start_line":296,"start_character":0,"end_line":299,"end_character":60},"updated":"2017-02-21 20:52:30.000000000","message":"Added these as we are removing it in setup and this test depends on admin_only_action_common.py. This will be changed along with admin_only_action_common.py and all tests depending on that.","commit_id":"b3aa2e5e5d3e895607ca42b5ae5da7f8d653b64b"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"72ae02cf29bfa6a829b750b35e698cd93bc171bb","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            },"},{"line_number":314,"context_line":"        }"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027get\u0027)"},{"line_number":317,"context_line":"        self.mox.StubOutWithMock(common,"},{"line_number":318,"context_line":"                                 \u0027check_img_metadata_properties_quota\u0027)"},{"line_number":319,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027backup\u0027)"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"        common.check_img_metadata_properties_quota(self.context, {})"},{"line_number":322,"context_line":"        self._test_non_existing_instance(\u0027_create_backup\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_bc5e22e7","line":319,"range":{"start_line":316,"start_character":0,"end_line":319,"end_character":60},"updated":"2017-02-21 20:52:30.000000000","message":"ditto","commit_id":"b3aa2e5e5d3e895607ca42b5ae5da7f8d653b64b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c7de749c47a8c3a8b93c57d11477725fd8402063","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        patch_get \u003d mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":41,"context_line":"        self.mock_get \u003d patch_get.start()"},{"line_number":42,"context_line":"        self.addCleanup(patch_get.stop)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @mock.patch.object(common, \u0027check_img_metadata_properties_quota\u0027)"},{"line_number":45,"context_line":"    @mock.patch.object(api.API, \u0027backup\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_b2d21d33","line":42,"updated":"2017-02-28 16:10:25.000000000","message":"Its a nit, but I think its more consistent to do this as a class decorator, or just add it on all the methods that use it.","commit_id":"e2ffeb73c6e5d69703e00b17ece85cb49898279e"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"e6db61aa3181a5a3a33e838aff328f4fec5dad99","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        patch_get \u003d mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":41,"context_line":"        self.mock_get \u003d patch_get.start()"},{"line_number":42,"context_line":"        self.addCleanup(patch_get.stop)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @mock.patch.object(common, \u0027check_img_metadata_properties_quota\u0027)"},{"line_number":45,"context_line":"    @mock.patch.object(api.API, \u0027backup\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_6145f115","line":42,"in_reply_to":"ba2be162_b2d21d33","updated":"2017-03-01 22:45:45.000000000","message":"John Garbutt,  Since the class to be mocked is defined in setup method  (self.compute_api), we can\u0027t mock with decorator. compute API class is based on CONF.cells.cell_type.\n\nSame thing with adding it to all the methods. It can\u0027t be added as a decorator. using \"with mock.patch\" inside each test would make it less readable than this.\n\nSo I think this is more readable.","commit_id":"e2ffeb73c6e5d69703e00b17ece85cb49898279e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c7de749c47a8c3a8b93c57d11477725fd8402063","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                          self.controller._create_backup,"},{"line_number":301,"context_line":"                          self.req, instance.uuid,"},{"line_number":302,"context_line":"                          body\u003dbody_map)"},{"line_number":303,"context_line":"        self.assertIn(\"Cannot \\\u0027%(action)s\\\u0027 instance %(id)s\""},{"line_number":304,"context_line":"                      % {\u0027action\u0027: \u0027createBackup\u0027,"},{"line_number":305,"context_line":"                         \u0027id\u0027: instance.uuid}, ex.explanation)"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_8f9096ee","line":303,"range":{"start_line":303,"start_character":30,"end_line":303,"end_character":44},"updated":"2017-02-28 16:10:25.000000000","message":"Maybe just inline createBackup here.","commit_id":"e2ffeb73c6e5d69703e00b17ece85cb49898279e"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"e6db61aa3181a5a3a33e838aff328f4fec5dad99","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                          self.controller._create_backup,"},{"line_number":301,"context_line":"                          self.req, instance.uuid,"},{"line_number":302,"context_line":"                          body\u003dbody_map)"},{"line_number":303,"context_line":"        self.assertIn(\"Cannot \\\u0027%(action)s\\\u0027 instance %(id)s\""},{"line_number":304,"context_line":"                      % {\u0027action\u0027: \u0027createBackup\u0027,"},{"line_number":305,"context_line":"                         \u0027id\u0027: instance.uuid}, ex.explanation)"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba2be162_e11641f0","line":303,"range":{"start_line":303,"start_character":30,"end_line":303,"end_character":44},"in_reply_to":"ba2be162_8f9096ee","updated":"2017-03-01 22:45:45.000000000","message":"Done","commit_id":"e2ffeb73c6e5d69703e00b17ece85cb49898279e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"626913757fe96460daf1995be68721a7aad888ea","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        patch_get \u003d mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":42,"context_line":"        self.mock_get \u003d patch_get.start()"},{"line_number":43,"context_line":"        self.addCleanup(patch_get.stop)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @mock.patch.object(common, \u0027check_img_metadata_properties_quota\u0027)"},{"line_number":46,"context_line":"    @mock.patch.object(api.API, \u0027backup\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a30ddce_b693cda2","line":43,"updated":"2017-03-07 17:21:11.000000000","message":"Still not 100% sure about doing it this way, but its better than having nested decorators in all of the methods below!","commit_id":"efa2143ec5662b0d9baea6c6954fe7924326aefe"}]}
