)]}'
{"nova/tests/unit/api/openstack/compute/test_migrations.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f15af89280760213ac93fcacbc44aba642c2e6b2","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.context \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_index(self):"},{"line_number":158,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":159,"context_line":"        def _do_test(mock_get):"},{"line_number":160,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":161,"context_line":"            migrations_in_progress \u003d {\u0027migrations\u0027: self._migrations_output()}"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_d8d7b6eb","line":158,"updated":"2016-05-24 14:52:52.000000000","message":"I think you can move the decorator to the test_index and drop the extra nesting of _do_test","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d7a3e0980ea794cd770706a9bb074957134d7443","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.context \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_index(self):"},{"line_number":158,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":159,"context_line":"        def _do_test(mock_get):"},{"line_number":160,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":161,"context_line":"            migrations_in_progress \u003d {\u0027migrations\u0027: self._migrations_output()}"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_cca6a70f","line":158,"in_reply_to":"bab6814e_09bf0ffd","updated":"2016-05-30 15:54:24.000000000","message":"I see. Most probably you could mock the proper get_migration method through the module import as well but as the whole test suite organized around the pattern of mocking through self.controller.compute_api. I\u0027m fine with it.","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"fec44177cf051560477f15dceeffd39dd296d81f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        self.context \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_index(self):"},{"line_number":158,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":159,"context_line":"        def _do_test(mock_get):"},{"line_number":160,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":161,"context_line":"            migrations_in_progress \u003d {\u0027migrations\u0027: self._migrations_output()}"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_09bf0ffd","line":158,"in_reply_to":"bab6814e_d8d7b6eb","updated":"2016-05-25 07:42:00.000000000","message":"We can\u0027t do that, because we do patch self.member, not a module.","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f15af89280760213ac93fcacbc44aba642c2e6b2","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_index(self):"},{"line_number":158,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":159,"context_line":"        def _do_test(mock_get):"},{"line_number":160,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":161,"context_line":"            migrations_in_progress \u003d {\u0027migrations\u0027: self._migrations_output()}"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_382a42e8","line":159,"range":{"start_line":159,"start_character":21,"end_line":159,"end_character":29},"updated":"2016-05-24 14:52:52.000000000","message":"let\u0027s call it mock_get_migration for extra readability","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"fec44177cf051560477f15dceeffd39dd296d81f","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_index(self):"},{"line_number":158,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":159,"context_line":"        def _do_test(mock_get):"},{"line_number":160,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":161,"context_line":"            migrations_in_progress \u003d {\u0027migrations\u0027: self._migrations_output()}"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_a936c3b1","line":159,"range":{"start_line":159,"start_character":21,"end_line":159,"end_character":29},"in_reply_to":"bab6814e_382a42e8","updated":"2016-05-25 07:42:00.000000000","message":"See above reply.","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f15af89280760213ac93fcacbc44aba642c2e6b2","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            \u0027\u0027, version\u003dself.wsgi_api_version, use_admin_context\u003dTrue)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def test_index(self):"},{"line_number":189,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":190,"context_line":"        def _do_test(mock_get):"},{"line_number":191,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":192,"context_line":"            migrations \u003d {\u0027migrations\u0027: self.controller._output("}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_a1e8be17","line":189,"updated":"2016-05-24 14:52:52.000000000","message":"ditto","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"fec44177cf051560477f15dceeffd39dd296d81f","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            \u0027\u0027, version\u003dself.wsgi_api_version, use_admin_context\u003dTrue)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def test_index(self):"},{"line_number":189,"context_line":"        @mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027)"},{"line_number":190,"context_line":"        def _do_test(mock_get):"},{"line_number":191,"context_line":"            mock_get.return_value \u003d migrations_obj"},{"line_number":192,"context_line":"            migrations \u003d {\u0027migrations\u0027: self.controller._output("}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_e940cb09","line":189,"in_reply_to":"bab6814e_a1e8be17","updated":"2016-05-25 07:42:00.000000000","message":"See above reply.","commit_id":"78d4b35b5b2d179270ce6dc3786ef0ec1f9aa4a3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6b7c1e873748b0521a23725a7aae0bd95def0025","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            self.assertEqual(migrations, response)"},{"line_number":209,"context_line":"            self.assertIn(\u0027links\u0027, response[\u0027migrations\u0027][0])"},{"line_number":210,"context_line":"            self.assertIn(\u0027migration_type\u0027, response[\u0027migrations\u0027][0])"},{"line_number":211,"context_line":"            self.assertTrue(mock_get.call_count \u003d\u003d 1)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        _do_test()"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_915e6b74","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":53},"updated":"2016-05-31 00:40:50.000000000","message":"It should be as follows:\n\nself.assertEqual(1, mock_get.call_count)","commit_id":"64f24a696a57561d4c0db595a970e3b5bc0182d2"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"5e38a4afe7e0ca01a7591279e19ad2b5a92dedd1","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            self.assertEqual(migrations, response)"},{"line_number":209,"context_line":"            self.assertIn(\u0027links\u0027, response[\u0027migrations\u0027][0])"},{"line_number":210,"context_line":"            self.assertIn(\u0027migration_type\u0027, response[\u0027migrations\u0027][0])"},{"line_number":211,"context_line":"            self.assertTrue(mock_get.call_count \u003d\u003d 1)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        _do_test()"},{"line_number":214,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_784a3a56","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":53},"in_reply_to":"9abb7d3a_915e6b74","updated":"2016-06-02 06:49:22.000000000","message":"If there are other places need to update, I will update this. Otherwise, I will leave this unchanged.","commit_id":"64f24a696a57561d4c0db595a970e3b5bc0182d2"},{"author":{"_account_id":16907,"name":"Diana Clarke","email":"diana.joan.clarke@gmail.com","username":"diana-clarke"},"change_message_id":"caf406ce04f648908ffe61c4de05bf44395da3cc","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        with mock.patch.object(self.controller.compute_api, \u0027get_migrations\u0027,"},{"line_number":171,"context_line":"                               return_value\u003dmigrations_obj) as mock_get:"},{"line_number":172,"context_line":"            self.req.GET.update(filters)"},{"line_number":173,"context_line":"            response \u003d self.controller.index(self.req)"},{"line_number":174,"context_line":"            self.assertEqual(migrations_in_progress, response)"},{"line_number":175,"context_line":"            mock_get.assert_called_once_with(self.context, filters)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_b7ce98b5","line":172,"range":{"start_line":172,"start_character":12,"end_line":172,"end_character":40},"updated":"2016-09-27 19:44:05.000000000","message":"I probably would have kept this outside of the mock context, right under `filters` where it was before.\n\n        filters \u003d {\u0027host\u0027: \u0027host1\u0027, \u0027status\u0027: \u0027migrating\u0027,\n                   \u0027cell_name\u0027: \u0027ChildCell\u0027}\n        self.req.GET.update(filters)","commit_id":"b6408f3bfca3b9581a5e06abd299ca5572f0c789"}]}
