)]}'
{"nova/tests/unit/api/openstack/compute/test_server_reset_state.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"25a9d3053d2d368b0db8fb4e1982ce18c42caa1a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#   under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import uuidutils"},{"line_number":18,"context_line":"import webob"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_5e5485c9","line":16,"updated":"2016-11-04 07:03:09.000000000","message":"This blank line should be removed.\n\nhttp://docs.openstack.org/developer/hacking/#real-world-import-order-examples","commit_id":"6fb1b8e825e36da732d2d13d8d017b09d357aac4"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"30322409ab9c7d1f9803de58cff119f1a02cf61a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#   under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_utils import uuidutils"},{"line_number":18,"context_line":"import webob"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5da102_61928cf8","line":16,"in_reply_to":"ba5da102_5e5485c9","updated":"2016-11-04 08:13:02.000000000","message":"Done","commit_id":"6fb1b8e825e36da732d2d13d8d017b09d357aac4"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"fa9c2bfb3b320ebee874646282c3a3a358df0934","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        instance.obj_reset_changes()"},{"line_number":48,"context_line":"        return instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _check_instance_state(self, expected, admin_state_reset\u003dTrue):"},{"line_number":51,"context_line":"        self.assertEqual(set(expected.keys()),"},{"line_number":52,"context_line":"                         self.instance.obj_what_changed())"},{"line_number":53,"context_line":"        for k, v in expected.items():"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_c99d4fbd","line":50,"range":{"start_line":50,"start_character":46,"end_line":50,"end_character":68},"updated":"2017-02-09 08:30:47.000000000","message":"It seems unused.","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"c49f0f0cdc6bdcf9a32d76c7f52c7717e2efab4d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        instance.obj_reset_changes()"},{"line_number":48,"context_line":"        return instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _check_instance_state(self, expected, admin_state_reset\u003dTrue):"},{"line_number":51,"context_line":"        self.assertEqual(set(expected.keys()),"},{"line_number":52,"context_line":"                         self.instance.obj_what_changed())"},{"line_number":53,"context_line":"        for k, v in expected.items():"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_94785091","line":50,"range":{"start_line":50,"start_character":46,"end_line":50,"end_character":68},"in_reply_to":"1a430d35_c99d4fbd","updated":"2017-02-13 10:22:58.000000000","message":"It\u0027s used at L116 and L144","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"8b2b9bf1db0f107a7e389462155e191c0466838c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        instance.obj_reset_changes()"},{"line_number":48,"context_line":"        return instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _check_instance_state(self, expected, admin_state_reset\u003dTrue):"},{"line_number":51,"context_line":"        self.assertEqual(set(expected.keys()),"},{"line_number":52,"context_line":"                         self.instance.obj_what_changed())"},{"line_number":53,"context_line":"        for k, v in expected.items():"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_9a23f2a6","line":50,"range":{"start_line":50,"start_character":46,"end_line":50,"end_character":68},"in_reply_to":"fa31d9ce_824bae86","updated":"2017-02-14 01:56:19.000000000","message":"when we do test_reset_active (L92), we set mock_save.side_effect\u003d_check_instance_state() at L99, then we check mock_save.assert_called_once_with(admin_state_reset\u003dTrue) at L116","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"dbf877781fd54ee72aa4da80ac7cd64b83da3f9a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        instance.obj_reset_changes()"},{"line_number":48,"context_line":"        return instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _check_instance_state(self, expected, admin_state_reset\u003dTrue):"},{"line_number":51,"context_line":"        self.assertEqual(set(expected.keys()),"},{"line_number":52,"context_line":"                         self.instance.obj_what_changed())"},{"line_number":53,"context_line":"        for k, v in expected.items():"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_824bae86","line":50,"range":{"start_line":50,"start_character":46,"end_line":50,"end_character":68},"in_reply_to":"fa31d9ce_94785091","updated":"2017-02-13 11:30:26.000000000","message":"I agree with Naohiro.\n\u0027admin_state_reset\u0027 is not used in this method(L50-L56).","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"fa9c2bfb3b320ebee874646282c3a3a358df0934","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                          body\u003d{\"os-resetState\": {\"state\": \"spam\"}})"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_no_instance(self):"},{"line_number":74,"context_line":"        @mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":75,"context_line":"        def _do_test(mock_get):"},{"line_number":76,"context_line":"            mock_get.side_effect \u003d exception.InstanceNotFound("},{"line_number":77,"context_line":"                instance_id\u003d\u0027inst_ud\u0027)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_ec3139a3","line":75,"range":{"start_line":74,"start_character":8,"end_line":75,"end_character":31},"updated":"2017-02-09 08:30:47.000000000","message":"We can remove inner function such as:\n\n    def test_no_instance(self):\n        self.compute_api.get \u003d mock.MagicMock(\n            side_effect\u003dexception.InstanceNotFound(instance_id\u003d\u0027inst_ud\u0027))\n\n        self.assertRaises(webob.exc.HTTPNotFound,\n                          self.admin_api._reset_state,\n                          self.request, self.uuid,\n                          body\u003d{\"os-resetState\": {\"state\": \"active\"}})\n\n        self.compute_api.get.assert_called_once_with(\n            self.context, self.uuid, expected_attrs\u003dNone,\n        )","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"c49f0f0cdc6bdcf9a32d76c7f52c7717e2efab4d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                          body\u003d{\"os-resetState\": {\"state\": \"spam\"}})"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def test_no_instance(self):"},{"line_number":74,"context_line":"        @mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":75,"context_line":"        def _do_test(mock_get):"},{"line_number":76,"context_line":"            mock_get.side_effect \u003d exception.InstanceNotFound("},{"line_number":77,"context_line":"                instance_id\u003d\u0027inst_ud\u0027)"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_1410e04d","line":75,"range":{"start_line":74,"start_character":8,"end_line":75,"end_character":31},"in_reply_to":"1a430d35_ec3139a3","updated":"2017-02-13 10:22:58.000000000","message":"Done","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5f65eda13ebafb1c90bdc2e6d04d2c5d2f30fbaf","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                              self.request, self.uuid,"},{"line_number":82,"context_line":"                              body\u003d{\"os-resetState\": {\"state\": \"active\"}})"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            mock_get.assert_called_once_with("},{"line_number":85,"context_line":"                self.context,"},{"line_number":86,"context_line":"                self.uuid,"},{"line_number":87,"context_line":"                expected_attrs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_9248aace","line":84,"updated":"2017-02-01 21:37:00.000000000","message":"Follow the styling in L115 for this instead of one argument in each line to make the code look neat.","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"c49f0f0cdc6bdcf9a32d76c7f52c7717e2efab4d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                              self.request, self.uuid,"},{"line_number":82,"context_line":"                              body\u003d{\"os-resetState\": {\"state\": \"active\"}})"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"            mock_get.assert_called_once_with("},{"line_number":85,"context_line":"                self.context,"},{"line_number":86,"context_line":"                self.uuid,"},{"line_number":87,"context_line":"                expected_attrs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_f4142c45","line":84,"in_reply_to":"3a461143_9248aace","updated":"2017-02-13 10:22:58.000000000","message":"Done","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"fa9c2bfb3b320ebee874646282c3a3a358df0934","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        _do_test()"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_reset_active(self):"},{"line_number":93,"context_line":"        @mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":94,"context_line":"        @mock.patch.object(self.instance, \u0027save\u0027)"},{"line_number":95,"context_line":"        def _do_test(mock_save, mock_get):"},{"line_number":96,"context_line":"            expected \u003d dict(vm_state\u003dvm_states.ACTIVE,"},{"line_number":97,"context_line":"                            task_state\u003dNone)"},{"line_number":98,"context_line":"            mock_get.return_value \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_0cdcc544","line":95,"range":{"start_line":93,"start_character":8,"end_line":95,"end_character":42},"updated":"2017-02-09 08:30:47.000000000","message":"we should be able to simply such as above.","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"c49f0f0cdc6bdcf9a32d76c7f52c7717e2efab4d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        _do_test()"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def test_reset_active(self):"},{"line_number":93,"context_line":"        @mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":94,"context_line":"        @mock.patch.object(self.instance, \u0027save\u0027)"},{"line_number":95,"context_line":"        def _do_test(mock_save, mock_get):"},{"line_number":96,"context_line":"            expected \u003d dict(vm_state\u003dvm_states.ACTIVE,"},{"line_number":97,"context_line":"                            task_state\u003dNone)"},{"line_number":98,"context_line":"            mock_get.return_value \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_f4698cbf","line":95,"range":{"start_line":93,"start_character":8,"end_line":95,"end_character":42},"in_reply_to":"1a430d35_0cdcc544","updated":"2017-02-13 10:22:58.000000000","message":"Done","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"fa9c2bfb3b320ebee874646282c3a3a358df0934","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        _do_test()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_reset_error(self):"},{"line_number":121,"context_line":"        @mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":122,"context_line":"        @mock.patch.object(self.instance, \u0027save\u0027)"},{"line_number":123,"context_line":"        def _do_test(mock_save, mock_get):"},{"line_number":124,"context_line":"            expected \u003d dict(vm_state\u003dvm_states.ERROR,"},{"line_number":125,"context_line":"                            task_state\u003dNone)"},{"line_number":126,"context_line":"            mock_get.return_value \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a430d35_ccbc7dde","line":123,"range":{"start_line":121,"start_character":8,"end_line":123,"end_character":42},"updated":"2017-02-09 08:30:47.000000000","message":"ditto.","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":19935,"name":"Anh Tran","email":"anhtt@vn.fujitsu.com","username":"trananhkma"},"change_message_id":"c49f0f0cdc6bdcf9a32d76c7f52c7717e2efab4d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        _do_test()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_reset_error(self):"},{"line_number":121,"context_line":"        @mock.patch.object(self.compute_api, \u0027get\u0027)"},{"line_number":122,"context_line":"        @mock.patch.object(self.instance, \u0027save\u0027)"},{"line_number":123,"context_line":"        def _do_test(mock_save, mock_get):"},{"line_number":124,"context_line":"            expected \u003d dict(vm_state\u003dvm_states.ERROR,"},{"line_number":125,"context_line":"                            task_state\u003dNone)"},{"line_number":126,"context_line":"            mock_get.return_value \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa31d9ce_346404e3","line":123,"range":{"start_line":121,"start_character":8,"end_line":123,"end_character":42},"in_reply_to":"1a430d35_ccbc7dde","updated":"2017-02-13 10:22:58.000000000","message":"Done","commit_id":"4465fe0d2ef31f63afe1eddbb3ce1d701d2ab0d9"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"65230676dfb7aaeaa6329aaeae1ad255230d3c6f","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        instance.obj_reset_changes()"},{"line_number":48,"context_line":"        return instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _check_instance_state(self, expected, admin_state_reset\u003dTrue):"},{"line_number":51,"context_line":"        self.assertEqual(set(expected.keys()),"},{"line_number":52,"context_line":"                         self.instance.obj_what_changed())"},{"line_number":53,"context_line":"        for k, v in expected.items():"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa31d9ce_493868d3","line":50,"range":{"start_line":50,"start_character":44,"end_line":50,"end_character":68},"updated":"2017-02-16 04:28:39.000000000","message":"Anh,\n\nWe can verify that \u0027admin_state_reset\u003dTrue\u0027 has nothing to do with its test result by changing it to \u0027admin_state_reset\u003dFalse\u0027.\nSo we can remove \u0027admin_state_reset\u003dTrue\u0027 safely.\n\n(venv) naohirot@ubuntu:~/work/src/nova[review/anh_tran/bp/remove-mox-pike]$ git diff\ndiff --git a/nova/tests/unit/api/openstack/compute/test_server_reset_state.py b/nova/tests/unit/api/openstack/compute/test_server_reset_state.py\nindex f8159bb..1e268dc 100644\n--- a/nova/tests/unit/api/openstack/compute/test_server_reset_state.py\n+++ b/nova/tests/unit/api/openstack/compute/test_server_reset_state.py\n@@ -47,7 +47,7 @@ class ResetStateTestsV21(test.NoDBTestCase):\n         instance.obj_reset_changes()\n         return instance\n\n-    def _check_instance_state(self, expected, admin_state_reset\u003dTrue):\n+    def _check_instance_state(self, expected, admin_state_reset\u003dFalse):\n         self.assertEqual(set(expected.keys()),\n                          self.instance.obj_what_changed())\n         for k, v in expected.items():\n\n(venv) naohirot@ubuntu:~/work/src/nova[review/anh_tran/bp/remove-mox-pike]$ tox -epy27 test_server_reset_state.ResetStateTestsV21\n...\n{0} nova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_reset_active [0.165043s] ... ok\n{3} nova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_no_instance [0.075450s] ... ok\n{3} nova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_no_state [0.024075s] ... ok\n{2} nova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_reset_error [0.073911s] ... ok\n{1} nova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_bad_state [0.067614s] ... ok\nSlowest Tests\nTest id                                                                                             Runtime (s)\n--------------------------------------------------------------------------------------------------  -----------\nnova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_reset_active  0.165\nnova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_no_instance   0.075\nnova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_reset_error   0.074\nnova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_bad_state     0.068\nnova.tests.unit.api.openstack.compute.test_server_reset_state.ResetStateTestsV21.test_no_state      0.024\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 5 tests in 45.0000 sec.\n - Passed: 5\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 0.4061 sec.\n\n...\n_________________________________________________________________________________ summary __________________________________________________________________________________\n  py27: commands succeeded\n  congratulations :)","commit_id":"967a4ee73d1a862104a48ebdb2cbf44bf9af4f34"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"52b1cc9e9af21c537bb38071ca809734cc1e9acd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                          self.request, self.uuid,"},{"line_number":80,"context_line":"                          body\u003d{\"os-resetState\": {\"state\": \"active\"}})"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        self.compute_api.get.assert_called_once_with("},{"line_number":83,"context_line":"            self.context, self.uuid, expected_attrs\u003dNone)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_reset_active(self):"},{"line_number":86,"context_line":"        expected \u003d dict(vm_state\u003dvm_states.ACTIVE, task_state\u003dNone)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da36d5c6_c9e57f38","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":57},"updated":"2017-02-23 20:30:21.000000000","message":"They are unit tests for nova.api.openstack.compute modules, and it would be enough to verify these modules\u0027 behaviors and compute_api\u0027s verifications are not mandatory like original tests.\nBut current patch is fine with these verifications.","commit_id":"1363b456ec43162e03adf904722e92609486d153"}]}
