)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8ec6736aea4f12ddae594d7172c61ab94edafa61","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Replaced mox with mock in"},{"line_number":10,"context_line":"nova/tests/unit/test_service.py"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Part of blueprint remove-mox-newton"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ibd5ff0466771a32d2733985803ae21204a909f6d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_1f32eff1","line":12,"range":{"start_line":12,"start_character":18,"end_line":12,"end_character":35},"updated":"2016-11-23 14:30:38.000000000","message":"This is closed, you should be tracking against blueprint remove-mox-ocata now.","commit_id":"408a2b0c6093a74bc1331ad4ecdc4591688c5200"}],"nova/tests/unit/test_service.py":[{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"fcd8f9215e2448e2cff98f8049c8f48895a30033","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        fake_mgr.service_name \u003d self.topic"},{"line_number":124,"context_line":"        fake_mgr.additional_endpoints \u003d []"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        with test.nested("},{"line_number":127,"context_line":"            mock.patch.object(sys.modules[__name__], \u0027FakeManager\u0027,"},{"line_number":128,"context_line":"                              return_value\u003dfake_mgr),"},{"line_number":129,"context_line":"            mock.patch.object(objects.Service, \u0027get_by_host_and_binary\u0027),"},{"line_number":130,"context_line":"            mock.patch.object(objects.Service, \u0027create\u0027),"},{"line_number":131,"context_line":"        ) as (mock_mgr, mock_serv_get, mock_serv_create):"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"            serv \u003d service.Service(self.host,"},{"line_number":134,"context_line":"                                   self.binary,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a89bdaa_39b5daed","line":131,"range":{"start_line":126,"start_character":0,"end_line":131,"end_character":57},"updated":"2016-09-06 04:46:42.000000000","message":"wouldn\u0027t it be better to use decorator?\n\nfor example,\n\n@mock.patch.object(sys.modules[__name__], \u0027FakeManager\u0027,\n                              return_value\u003dfake_mgr)\n@mock.patch.object(objects.Service, \u0027get_by_host_and_binary\u0027)\n@mock.patch.object(objects.Service, \u0027create\u0027)\ndef test_init_and_start_hooks(self,mock_serv_create, mock_serv_get, mock_mgr):","commit_id":"408a2b0c6093a74bc1331ad4ecdc4591688c5200"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a1c1df3b15c75372c98528ac6395d63f164eae3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    @mock.patch.object(objects.Service, \u0027get_by_host_and_binary\u0027)"},{"line_number":118,"context_line":"    def test_init_and_start_hooks(self, mock_get_by_host_and_binary,"},{"line_number":119,"context_line":"                                                        mock_create):"},{"line_number":120,"context_line":"        mock_get_by_host_and_binary.return_value \u003d None"},{"line_number":121,"context_line":"        mock_manager \u003d mock.Mock()"},{"line_number":122,"context_line":"        serv \u003d service.Service(self.host,"},{"line_number":123,"context_line":"                               self.binary,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_912b5e33","line":120,"range":{"start_line":120,"start_character":8,"end_line":120,"end_character":55},"updated":"2017-02-28 14:29:39.000000000","message":"this could be a decorator argument","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e29409c77ebef5f8875585a9acc1dbfa0664ce4a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    @mock.patch.object(objects.Service, \u0027get_by_host_and_binary\u0027)"},{"line_number":118,"context_line":"    def test_init_and_start_hooks(self, mock_get_by_host_and_binary,"},{"line_number":119,"context_line":"                                                        mock_create):"},{"line_number":120,"context_line":"        mock_get_by_host_and_binary.return_value \u003d None"},{"line_number":121,"context_line":"        mock_manager \u003d mock.Mock()"},{"line_number":122,"context_line":"        serv \u003d service.Service(self.host,"},{"line_number":123,"context_line":"                               self.binary,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_fb00ceac","line":120,"range":{"start_line":120,"start_character":8,"end_line":120,"end_character":55},"in_reply_to":"ba2be162_912b5e33","updated":"2017-03-07 17:07:02.000000000","message":"I much prefer it here myself.","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a1c1df3b15c75372c98528ac6395d63f164eae3","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                               self.binary,"},{"line_number":124,"context_line":"                               self.topic,"},{"line_number":125,"context_line":"                               \u0027nova.tests.unit.test_service.FakeManager\u0027)"},{"line_number":126,"context_line":"        serv.manager \u003d mock_manager"},{"line_number":127,"context_line":"        serv.manager.service_name \u003d self.topic"},{"line_number":128,"context_line":"        serv.manager.additional_endpoints \u003d []"},{"line_number":129,"context_line":"        serv.start()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_91d27e33","line":126,"range":{"start_line":126,"start_character":23,"end_line":126,"end_character":35},"updated":"2017-02-28 14:29:39.000000000","message":"nit: You could just replace this with \u0027mock.Mock()\u0027","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e29409c77ebef5f8875585a9acc1dbfa0664ce4a","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                               self.binary,"},{"line_number":124,"context_line":"                               self.topic,"},{"line_number":125,"context_line":"                               \u0027nova.tests.unit.test_service.FakeManager\u0027)"},{"line_number":126,"context_line":"        serv.manager \u003d mock_manager"},{"line_number":127,"context_line":"        serv.manager.service_name \u003d self.topic"},{"line_number":128,"context_line":"        serv.manager.additional_endpoints \u003d []"},{"line_number":129,"context_line":"        serv.start()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a30ddce_3bd8a653","line":126,"range":{"start_line":126,"start_character":23,"end_line":126,"end_character":35},"in_reply_to":"ba2be162_91d27e33","updated":"2017-03-07 17:07:02.000000000","message":"+1","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a1c1df3b15c75372c98528ac6395d63f164eae3","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        mock_get_by_host_and_binary.side_effect \u003d [None, TestException()]"},{"line_number":174,"context_line":"        mock_create.side_effect \u003d ex"},{"line_number":175,"context_line":"        serv.manager \u003d mock_manager"},{"line_number":176,"context_line":"        self.assertRaises(TestException, serv.start)"},{"line_number":177,"context_line":"        serv.manager.init_host.assert_called_with()"},{"line_number":178,"context_line":"        mock_get_by_host_and_binary.assert_has_calls(["}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_71eeeaed","line":175,"range":{"start_line":175,"start_character":23,"end_line":175,"end_character":35},"updated":"2017-02-28 14:29:39.000000000","message":"Same as above","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a1c1df3b15c75372c98528ac6395d63f164eae3","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    def test_parent_graceful_shutdown(self, mock_stop,"},{"line_number":195,"context_line":"                                      mock_get_by_host_and_binary,"},{"line_number":196,"context_line":"                                      mock_create):"},{"line_number":197,"context_line":"        mock_get_by_host_and_binary.return_value \u003d None"},{"line_number":198,"context_line":"        mock_manager \u003d mock.Mock()"},{"line_number":199,"context_line":"        serv \u003d service.Service(self.host,"},{"line_number":200,"context_line":"                               self.binary,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_f1b81ae8","line":197,"range":{"start_line":197,"start_character":8,"end_line":197,"end_character":55},"updated":"2017-02-28 14:29:39.000000000","message":"Argument","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a1c1df3b15c75372c98528ac6395d63f164eae3","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                               self.binary,"},{"line_number":201,"context_line":"                               self.topic,"},{"line_number":202,"context_line":"                               \u0027nova.tests.unit.test_service.FakeManager\u0027)"},{"line_number":203,"context_line":"        serv.manager \u003d mock_manager"},{"line_number":204,"context_line":"        serv.manager.service_name \u003d self.topic"},{"line_number":205,"context_line":"        serv.manager.additional_endpoints \u003d []"},{"line_number":206,"context_line":"        serv.start()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_b1bea2d2","line":203,"range":{"start_line":203,"start_character":23,"end_line":203,"end_character":35},"updated":"2017-02-28 14:29:39.000000000","message":"As above","commit_id":"733b40d29ce13ec27bdfd467701ffd5703998c70"}]}
