)]}'
{"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f80fb6602d6656343fe20efecd5e5e7301e9f3d","unresolved":false,"context_lines":[{"line_number":2376,"context_line":"            mock.call(self.context, inst_obj, \u0027fake-mini\u0027, action\u003d\u0027restore\u0027,"},{"line_number":2377,"context_line":"                      phase\u003d\u0027start\u0027),"},{"line_number":2378,"context_line":"            mock.call(self.context, inst_obj, \u0027fake-mini\u0027, action\u003d\u0027restore\u0027,"},{"line_number":2379,"context_line":"                      phase\u003d\u0027end\u0027)])"},{"line_number":2380,"context_line":""},{"line_number":2381,"context_line":"    def test_pause(self):"},{"line_number":2382,"context_line":"        # Ensure instance can be paused and unpaused."}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_ce508661","line":2379,"updated":"2016-06-28 11:34:14.000000000","message":"A big part of me wishes we made a test that didn\u0027t need to do DB operations, but this does follow the pattern here.","commit_id":"c7ad8054766b9ef7d4528ca1f6b8ed10f6b5682b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0279de9587237e3eba80d6def771759ecd225dc4","unresolved":false,"context_lines":[{"line_number":2319,"context_line":"    @mock.patch(\u0027nova.compute.utils.notify_about_instance_action\u0027)"},{"line_number":2320,"context_line":"    def test_restore(self, notifier):"},{"line_number":2321,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2322,"context_line":"        self.compute.build_and_run_instance(self.context,"},{"line_number":2323,"context_line":"                instance, {}, {}, {}, block_device_mapping\u003d[])"},{"line_number":2324,"context_line":"        extra \u003d [\u0027system_metadata\u0027, \u0027metadata\u0027]"},{"line_number":2325,"context_line":"        inst_obj \u003d objects.Instance.get_by_uuid(self.context,"},{"line_number":2326,"context_line":"                                                instance[\u0027uuid\u0027],"},{"line_number":2327,"context_line":"                                                expected_attrs\u003dextra)"},{"line_number":2328,"context_line":"        inst_obj.task_state \u003d task_states.RESTORING"},{"line_number":2329,"context_line":"        inst_obj.save()"},{"line_number":2330,"context_line":"        self.compute.restore_instance(self.context, inst_obj)"},{"line_number":2331,"context_line":"        notifier.assert_has_calls(["},{"line_number":2332,"context_line":"            mock.call(self.context, inst_obj, \u0027fake-mini\u0027, action\u003d\u0027restore\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_8e3c40c9","line":2329,"range":{"start_line":2322,"start_character":8,"end_line":2329,"end_character":23},"updated":"2016-07-06 20:23:46.000000000","message":"We don\u0027t want to actually do any of this. These old tests in test_compute shouldn\u0027t be duplicated.\n\nAdd a test to nova.tests.unit.compute.test_compute_mgr which doesn\u0027t use the DB and just makes sure we call the notify_about_instance_action mock as necessary.","commit_id":"4315359eca06f7a68337793d5c35c243e677d5b7"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f87d490cd0d25b24e9be9e0464bfd4b97156b3e2","unresolved":false,"context_lines":[{"line_number":3217,"context_line":"    def test_instance_restore_notification(self):"},{"line_number":3218,"context_line":"        inst_obj \u003d fake_instance.fake_instance_obj(self.context,"},{"line_number":3219,"context_line":"            vm_state\u003dvm_states.BUILDING, task_state\u003dtask_states.SPAWNING)"},{"line_number":3220,"context_line":"        with test.nested("},{"line_number":3221,"context_line":"                mock.patch.object(nova.compute.utils,"},{"line_number":3222,"context_line":"                                  \u0027notify_about_instance_action\u0027),"},{"line_number":3223,"context_line":"                mock.patch.object(self.compute,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_9bbbfce4","line":3220,"updated":"2016-07-12 08:02:16.000000000","message":"nit: I much prefer the decorators on the test method. I find that easier to read.","commit_id":"b709271d7ce9480f9f22c765122ab7f47e828658"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"27ac8f14abf0c871bbd63608b233b4dd439ffca5","unresolved":false,"context_lines":[{"line_number":3231,"context_line":"                          action\u003d\u0027restore\u0027, phase\u003d\u0027start\u0027),"},{"line_number":3232,"context_line":"                mock.call(self.context, inst_obj, \u0027fake-mini\u0027,"},{"line_number":3233,"context_line":"                          action\u003d\u0027restore\u0027, phase\u003d\u0027end\u0027)])"},{"line_number":3234,"context_line":""},{"line_number":3235,"context_line":""},{"line_number":3236,"context_line":"class ComputeManagerBuildInstanceTestCase(test.NoDBTestCase):"},{"line_number":3237,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_4ceaa0ad","line":3234,"updated":"2016-07-11 16:24:30.000000000","message":"nit: we can also add assert for fake_restore to check that compute.driver.restore is called.","commit_id":"b709271d7ce9480f9f22c765122ab7f47e828658"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f87d490cd0d25b24e9be9e0464bfd4b97156b3e2","unresolved":false,"context_lines":[{"line_number":3231,"context_line":"                          action\u003d\u0027restore\u0027, phase\u003d\u0027start\u0027),"},{"line_number":3232,"context_line":"                mock.call(self.context, inst_obj, \u0027fake-mini\u0027,"},{"line_number":3233,"context_line":"                          action\u003d\u0027restore\u0027, phase\u003d\u0027end\u0027)])"},{"line_number":3234,"context_line":""},{"line_number":3235,"context_line":""},{"line_number":3236,"context_line":"class ComputeManagerBuildInstanceTestCase(test.NoDBTestCase):"},{"line_number":3237,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1aa78d24_bb287834","line":3234,"in_reply_to":"1aa78d24_4ceaa0ad","updated":"2016-07-12 08:02:16.000000000","message":"we could, but I quite like how this just tests the notifications.","commit_id":"b709271d7ce9480f9f22c765122ab7f47e828658"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28d366b976953b876884cda66d8fcb9a8ea29bc1","unresolved":false,"context_lines":[{"line_number":3216,"context_line":""},{"line_number":3217,"context_line":"    def test_instance_restore_notification(self):"},{"line_number":3218,"context_line":"        inst_obj \u003d fake_instance.fake_instance_obj(self.context,"},{"line_number":3219,"context_line":"            vm_state\u003dvm_states.BUILDING, task_state\u003dtask_states.SPAWNING)"},{"line_number":3220,"context_line":"        with test.nested("},{"line_number":3221,"context_line":"                mock.patch.object(nova.compute.utils,"},{"line_number":3222,"context_line":"                                  \u0027notify_about_instance_action\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"1aa78d24_4bd2335d","line":3219,"range":{"start_line":3219,"start_character":12,"end_line":3219,"end_character":72},"updated":"2016-07-13 00:54:38.000000000","message":"nit: these aren\u0027t realistic values for a server that you can restore, the vm_state would need to be SOFT_DELETED:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L1862","commit_id":"7d234341ba198d4a28d8ddebdc50abc664afba5b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28d366b976953b876884cda66d8fcb9a8ea29bc1","unresolved":false,"context_lines":[{"line_number":3218,"context_line":"        inst_obj \u003d fake_instance.fake_instance_obj(self.context,"},{"line_number":3219,"context_line":"            vm_state\u003dvm_states.BUILDING, task_state\u003dtask_states.SPAWNING)"},{"line_number":3220,"context_line":"        with test.nested("},{"line_number":3221,"context_line":"                mock.patch.object(nova.compute.utils,"},{"line_number":3222,"context_line":"                                  \u0027notify_about_instance_action\u0027),"},{"line_number":3223,"context_line":"                mock.patch.object(self.compute,"},{"line_number":3224,"context_line":"                                  \u0027_notify_about_instance_usage\u0027),"},{"line_number":3225,"context_line":"                mock.patch.object(objects.Instance, \u0027save\u0027),"},{"line_number":3226,"context_line":"                mock.patch.object(self.compute.driver, \u0027restore\u0027)"},{"line_number":3227,"context_line":"        ) as (fake_notify, fake_notify_usage, fake_save, fake_restore):"},{"line_number":3228,"context_line":"            self.compute.restore_instance(self.context, inst_obj)"},{"line_number":3229,"context_line":"            fake_notify.assert_has_calls(["}],"source_content_type":"text/x-python","patch_set":11,"id":"1aa78d24_4b3993a3","line":3226,"range":{"start_line":3221,"start_character":16,"end_line":3226,"end_character":65},"updated":"2016-07-13 00:54:38.000000000","message":"nit: alignment is a bit deep here.","commit_id":"7d234341ba198d4a28d8ddebdc50abc664afba5b"}],"nova/tests/unit/objects/test_objects.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e960d0e2d09946885bd3b9c8c131aa5af879f235","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"    \u0027EC2InstanceMapping\u0027: \u00271.0-a4556eb5c5e94c045fe84f49cf71644f\u0027,"},{"line_number":1119,"context_line":"    \u0027EC2SnapshotMapping\u0027: \u00271.0-47e7ddabe1af966dce0cfd0ed6cd7cd1\u0027,"},{"line_number":1120,"context_line":"    \u0027EC2VolumeMapping\u0027: \u00271.0-5b713751d6f97bad620f3378a521020d\u0027,"},{"line_number":1121,"context_line":"    \u0027EventType\u0027: \u00271.3-c59e58de6b794d98a014a1cda764aac5\u0027,"},{"line_number":1122,"context_line":"    \u0027ExceptionNotification\u0027: \u00271.0-a73147b93b520ff0061865849d3dfa56\u0027,"},{"line_number":1123,"context_line":"    \u0027ExceptionPayload\u0027: \u00271.0-4516ae282a55fe2fd5c754967ee6248b\u0027,"},{"line_number":1124,"context_line":"    \u0027FixedIP\u0027: \u00271.14-53e1c10b539f1a82fe83b1af4720efae\u0027,"},{"line_number":1125,"context_line":"    \u0027FixedIPList\u0027: \u00271.14-87a39361c8f08f059004d6b15103cdfd\u0027,"},{"line_number":1126,"context_line":"    \u0027Flavor\u0027: \u00271.1-b6bb7a730a79d720344accefafacf7ee\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_0278938e","line":1123,"range":{"start_line":1121,"start_character":0,"end_line":1123,"end_character":63},"updated":"2016-06-22 09:11:49.000000000","message":"You don\u0027t have to add this. The https://review.openstack.org/#/c/330513/ takes care of the object versions","commit_id":"e2655cbf0f1470cef1685a23146ca91b1d49ad91"}]}
