)]}'
{"nova/tests/unit/virt/xenapi/test_vmops.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7e8ea7860c0a6263f084fca7edcebda12993ba15","unresolved":false,"context_lines":[{"line_number":2194,"context_line":"                       side_effect\u003dexception.InstanceNotFound("},{"line_number":2195,"context_line":"                           instance_id\u003d\u0027fake_vm_ref\u0027))"},{"line_number":2196,"context_line":"    def test_detach_interface_instance_not_found("},{"line_number":2197,"context_line":"            self, mock_get_vm_opaque_ref, mock_log_exception):"},{"line_number":2198,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2199,"context_line":"                          self.vmops.detach_interface,"},{"line_number":2200,"context_line":"                          self.fake_instance, self.fake_vif)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_b8dd30e1","line":2197,"range":{"start_line":2197,"start_character":42,"end_line":2197,"end_character":60},"updated":"2018-04-24 08:56:48.000000000","message":"you do not need to mock this or check mock_log_exception is not called.","commit_id":"5a42701f89a5139acdc38f8572b1083ba528264c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"988e2ae989a6af9252b41f2089f57c947a3381d1","unresolved":false,"context_lines":[{"line_number":2194,"context_line":"                       side_effect\u003dexception.InstanceNotFound("},{"line_number":2195,"context_line":"                           instance_id\u003d\u0027fake_vm_ref\u0027))"},{"line_number":2196,"context_line":"    def test_detach_interface_instance_not_found("},{"line_number":2197,"context_line":"            self, mock_get_vm_opaque_ref, mock_log_exception):"},{"line_number":2198,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2199,"context_line":"                          self.vmops.detach_interface,"},{"line_number":2200,"context_line":"                          self.fake_instance, self.fake_vif)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_9aaa696f","line":2197,"range":{"start_line":2197,"start_character":42,"end_line":2197,"end_character":60},"in_reply_to":"9f6a8fd7_32db504f","updated":"2018-04-26 11:17:14.000000000","message":"You can\u0027t use \u0027new\u0027 with \u0027new_callable\u0027 I\u0027m pretty sure, we\u0027ve gone over this before. I think \u0027new\u0027 is if you want it to actually create a mock, but new_callable\u003dmock.NonCallableMock is explicitly saying, \"this thing shouldn\u0027t be called\".","commit_id":"5a42701f89a5139acdc38f8572b1083ba528264c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2d24d88fb20276a3de52a6e6c70c4f47cfa10f43","unresolved":false,"context_lines":[{"line_number":2194,"context_line":"                       side_effect\u003dexception.InstanceNotFound("},{"line_number":2195,"context_line":"                           instance_id\u003d\u0027fake_vm_ref\u0027))"},{"line_number":2196,"context_line":"    def test_detach_interface_instance_not_found("},{"line_number":2197,"context_line":"            self, mock_get_vm_opaque_ref, mock_log_exception):"},{"line_number":2198,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2199,"context_line":"                          self.vmops.detach_interface,"},{"line_number":2200,"context_line":"                          self.fake_instance, self.fake_vif)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_c0547424","line":2197,"range":{"start_line":2197,"start_character":42,"end_line":2197,"end_character":60},"in_reply_to":"9f6a8fd7_9aaa696f","updated":"2018-04-26 13:01:45.000000000","message":"It\u0027s true that you can\u0027t use `new` and `new_callable` together.  But you don\u0027t need to.  This:\n\n @patch(\u0027thing\u0027, new_callable\u003dNonCallableMock)\n def test_foo(self, mock_thing):\n\nis functionally the same as this:\n\n @patch(\u0027thing\u0027, new\u003dNonCallableMock())\n def test_foo(self):\n\n...but without the additional argument.","commit_id":"5a42701f89a5139acdc38f8572b1083ba528264c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a934da722ab3e84989e16c4586388ee40f9435ae","unresolved":false,"context_lines":[{"line_number":2194,"context_line":"                       side_effect\u003dexception.InstanceNotFound("},{"line_number":2195,"context_line":"                           instance_id\u003d\u0027fake_vm_ref\u0027))"},{"line_number":2196,"context_line":"    def test_detach_interface_instance_not_found("},{"line_number":2197,"context_line":"            self, mock_get_vm_opaque_ref, mock_log_exception):"},{"line_number":2198,"context_line":"        self.assertRaises(exception.InstanceNotFound,"},{"line_number":2199,"context_line":"                          self.vmops.detach_interface,"},{"line_number":2200,"context_line":"                          self.fake_instance, self.fake_vif)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_32db504f","line":2197,"range":{"start_line":2197,"start_character":42,"end_line":2197,"end_character":60},"in_reply_to":"9f6a8fd7_b8dd30e1","updated":"2018-04-25 23:10:20.000000000","message":"The NonCallableMock implicitly \"asserts\" that it wasn\u0027t called.  You could use `new` instead of `new_callable` to get rid of the argument, but whatevs.","commit_id":"5a42701f89a5139acdc38f8572b1083ba528264c"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8b0982b5dfb1b71da1234c1a3fa1a4b8c747c9ad","unresolved":false,"context_lines":[{"line_number":2731,"context_line":"            self.vif_driver.unplug(instance, vif, vm_ref)"},{"line_number":2732,"context_line":"        except exception.InstanceNotFound:"},{"line_number":2733,"context_line":"            # Let this go up to the compute manager which will log a message"},{"line_number":2734,"context_line":"            # for it."},{"line_number":2735,"context_line":"            raise"},{"line_number":2736,"context_line":"        except exception.NovaException:"},{"line_number":2737,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_b22ebb8f","line":2734,"range":{"start_line":2734,"start_character":14,"end_line":2734,"end_character":20},"updated":"2018-04-23 18:29:14.000000000","message":"nit: It is better to add\n\n without stacktrace log here.\n\nor something to understand the purpose more easily.","commit_id":"5a42701f89a5139acdc38f8572b1083ba528264c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a934da722ab3e84989e16c4586388ee40f9435ae","unresolved":false,"context_lines":[{"line_number":2731,"context_line":"            self.vif_driver.unplug(instance, vif, vm_ref)"},{"line_number":2732,"context_line":"        except exception.InstanceNotFound:"},{"line_number":2733,"context_line":"            # Let this go up to the compute manager which will log a message"},{"line_number":2734,"context_line":"            # for it."},{"line_number":2735,"context_line":"            raise"},{"line_number":2736,"context_line":"        except exception.NovaException:"},{"line_number":2737,"context_line":"            with excutils.save_and_reraise_exception():"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_b25200dd","line":2734,"range":{"start_line":2734,"start_character":14,"end_line":2734,"end_character":20},"in_reply_to":"9f6a8fd7_b22ebb8f","updated":"2018-04-25 23:10:20.000000000","message":"Yeah, agree with that.","commit_id":"5a42701f89a5139acdc38f8572b1083ba528264c"}]}
