)]}'
{"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bbbcf3850f5d7c6f39a516b04203162f812e7246","unresolved":false,"context_lines":[{"line_number":1503,"context_line":"                          fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"    @mock.patch(\u0027nova.compute.api.API._resize_cells_support\u0027)"},{"line_number":1506,"context_line":"    @mock.patch(\u0027nova.conductor.conductor_api.ComputeTaskAPI.resize_instance\u0027)"},{"line_number":1507,"context_line":"    @mock.patch.object(flavors, \u0027get_flavor_by_flavor_id\u0027)"},{"line_number":1508,"context_line":"    def test_resize_to_zero_disk_flavor_volume_backed(self,"},{"line_number":1509,"context_line":"                                            get_flavor_by_flavor_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_02bd63b6","line":1506,"updated":"2015-08-06 09:33:51.000000000","message":"here","commit_id":"6c1d3a954361dabe2f11a566f7b7c4cbd9670434"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"83dbdc4541f71d568e60c49456b610118ec95549","unresolved":false,"context_lines":[{"line_number":1522,"context_line":"                               return_value\u003dTrue):"},{"line_number":1523,"context_line":"            with mock.patch.object(fake_inst, \u0027save\u0027):"},{"line_number":1524,"context_line":"                with mock.patch.object(self.compute_api,"},{"line_number":1525,"context_line":"                                       \u0027_record_action_start\u0027):"},{"line_number":1526,"context_line":"                    with resize_instance_mock:"},{"line_number":1527,"context_line":"                        with cells_support_mock:"},{"line_number":1528,"context_line":"                            self.compute_api.resize(self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_afba93be","line":1525,"updated":"2015-08-05 09:33:19.000000000","message":"not sure it\u0027s a good suggestion, but seems \nsome functions can be mocked at beginning to avoid too much indent?","commit_id":"6c1d3a954361dabe2f11a566f7b7c4cbd9670434"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"83dbdc4541f71d568e60c49456b610118ec95549","unresolved":false,"context_lines":[{"line_number":1524,"context_line":"                with mock.patch.object(self.compute_api,"},{"line_number":1525,"context_line":"                                       \u0027_record_action_start\u0027):"},{"line_number":1526,"context_line":"                    with resize_instance_mock:"},{"line_number":1527,"context_line":"                        with cells_support_mock:"},{"line_number":1528,"context_line":"                            self.compute_api.resize(self.context,"},{"line_number":1529,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1530,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_efc41b60","line":1527,"updated":"2015-08-05 09:33:19.000000000","message":"why use these \u0027with\u0027? \nseems it\u0027s not needed?","commit_id":"6c1d3a954361dabe2f11a566f7b7c4cbd9670434"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"bbbcf3850f5d7c6f39a516b04203162f812e7246","unresolved":false,"context_lines":[{"line_number":1524,"context_line":"                with mock.patch.object(self.compute_api,"},{"line_number":1525,"context_line":"                                       \u0027_record_action_start\u0027):"},{"line_number":1526,"context_line":"                    with resize_instance_mock:"},{"line_number":1527,"context_line":"                        with cells_support_mock:"},{"line_number":1528,"context_line":"                            self.compute_api.resize(self.context,"},{"line_number":1529,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1530,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_62cc676a","line":1527,"in_reply_to":"1a4dcd0f_1d22ddb9","updated":"2015-08-06 09:33:51.000000000","message":"you already mocked above, right?  see \u0027here\u0027\nwith that mock, I believe you don\u0027t need the \u0027with\u0027 here","commit_id":"6c1d3a954361dabe2f11a566f7b7c4cbd9670434"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"bb79fdbdf10a024cb8d1788aad0e4e5f73655cac","unresolved":false,"context_lines":[{"line_number":1524,"context_line":"                with mock.patch.object(self.compute_api,"},{"line_number":1525,"context_line":"                                       \u0027_record_action_start\u0027):"},{"line_number":1526,"context_line":"                    with resize_instance_mock:"},{"line_number":1527,"context_line":"                        with cells_support_mock:"},{"line_number":1528,"context_line":"                            self.compute_api.resize(self.context,"},{"line_number":1529,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1530,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_1d22ddb9","line":1527,"in_reply_to":"1a4dcd0f_efc41b60","updated":"2015-08-05 10:11:32.000000000","message":"Hi, Thanks for your review, for this one, when tests are run with the whole .py file, it will somehow call this function and will fail, so I mock it here. As I\u0027m just testing the volume-backed value, it doesn\u0027t matter whether it is a cell env or not.","commit_id":"6c1d3a954361dabe2f11a566f7b7c4cbd9670434"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"03cdc61e790055168b17b60c3ca5f11e49801d8c","unresolved":false,"context_lines":[{"line_number":1488,"context_line":"        with mock.patch.object(self.compute_api,"},{"line_number":1489,"context_line":"                               \u0027is_volume_backed_instance\u0027,"},{"line_number":1490,"context_line":"                               return_value\u003dTrue):"},{"line_number":1491,"context_line":"            with mock.patch.object(fake_inst, \u0027save\u0027):"},{"line_number":1492,"context_line":"                self.compute_api.resize(self.context,"},{"line_number":1493,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1494,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_2df12b95","line":1491,"updated":"2015-08-07 14:00:00.000000000","message":"You could use contextlib.nested to avoid the indentation hell. See expamples in this file.","commit_id":"1bc21b68ab3ddce96b1d57be8b539509a85ea2c4"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b86e238dd0b18421d1b2a0fd7fc17fc8846c5842","unresolved":false,"context_lines":[{"line_number":1488,"context_line":"        with mock.patch.object(self.compute_api,"},{"line_number":1489,"context_line":"                               \u0027is_volume_backed_instance\u0027,"},{"line_number":1490,"context_line":"                               return_value\u003dTrue):"},{"line_number":1491,"context_line":"            with mock.patch.object(fake_inst, \u0027save\u0027):"},{"line_number":1492,"context_line":"                self.compute_api.resize(self.context,"},{"line_number":1493,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1494,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_c2d95285","line":1491,"in_reply_to":"1a4dcd0f_2df12b95","updated":"2015-08-08 13:17:13.000000000","message":"Done","commit_id":"1bc21b68ab3ddce96b1d57be8b539509a85ea2c4"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"03cdc61e790055168b17b60c3ca5f11e49801d8c","unresolved":false,"context_lines":[{"line_number":1491,"context_line":"            with mock.patch.object(fake_inst, \u0027save\u0027):"},{"line_number":1492,"context_line":"                self.compute_api.resize(self.context,"},{"line_number":1493,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1494,"context_line":""},{"line_number":1495,"context_line":"    def test_resize_quota_exceeds_fails(self):"},{"line_number":1496,"context_line":"        self.mox.StubOutWithMock(flavors, \u0027get_flavor_by_flavor_id\u0027)"},{"line_number":1497,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027_upsize_quota_delta\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_adcf7b27","line":1494,"updated":"2015-08-07 14:00:00.000000000","message":"I think, you should check if is_volume_backed_instance is called correctly (by assert_called_once_with mock method)","commit_id":"1bc21b68ab3ddce96b1d57be8b539509a85ea2c4"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b86e238dd0b18421d1b2a0fd7fc17fc8846c5842","unresolved":false,"context_lines":[{"line_number":1491,"context_line":"            with mock.patch.object(fake_inst, \u0027save\u0027):"},{"line_number":1492,"context_line":"                self.compute_api.resize(self.context,"},{"line_number":1493,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1494,"context_line":""},{"line_number":1495,"context_line":"    def test_resize_quota_exceeds_fails(self):"},{"line_number":1496,"context_line":"        self.mox.StubOutWithMock(flavors, \u0027get_flavor_by_flavor_id\u0027)"},{"line_number":1497,"context_line":"        self.mox.StubOutWithMock(self.compute_api, \u0027_upsize_quota_delta\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_62e63e46","line":1494,"in_reply_to":"1a4dcd0f_adcf7b27","updated":"2015-08-08 13:17:13.000000000","message":"Done","commit_id":"1bc21b68ab3ddce96b1d57be8b539509a85ea2c4"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"9fd7b15b58d52a3f37ff8c6c2bf3ad671c7f5fbe","unresolved":false,"context_lines":[{"line_number":1493,"context_line":"            self.compute_api.resize(self.context,"},{"line_number":1494,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1495,"context_line":""},{"line_number":1496,"context_line":"        mock_volume.assert_called_once_with(self.context, fake_inst, mock.ANY)"},{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":"    def test_resize_quota_exceeds_fails(self):"},{"line_number":1499,"context_line":"        self.mox.StubOutWithMock(flavors, \u0027get_flavor_by_flavor_id\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_1e81c0fb","line":1496,"updated":"2015-08-10 03:28:06.000000000","message":"Why not bdm\u003dNone? It\u0027d check a key parameter","commit_id":"ce9b1ce866f5f4dbaf0975aba934021b26d2a3d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"1d592988b5e66ac7fe1af46520864db617922861","unresolved":false,"context_lines":[{"line_number":1493,"context_line":"            self.compute_api.resize(self.context,"},{"line_number":1494,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1495,"context_line":""},{"line_number":1496,"context_line":"        mock_volume.assert_called_once_with(self.context, fake_inst, mock.ANY)"},{"line_number":1497,"context_line":""},{"line_number":1498,"context_line":"    def test_resize_quota_exceeds_fails(self):"},{"line_number":1499,"context_line":"        self.mox.StubOutWithMock(flavors, \u0027get_flavor_by_flavor_id\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_de6cb838","line":1496,"in_reply_to":"1a4dcd0f_1e81c0fb","updated":"2015-08-10 03:37:05.000000000","message":"Done","commit_id":"ce9b1ce866f5f4dbaf0975aba934021b26d2a3d6"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"a1bb063109a3c127f279bdbb5ec4d73708dbeb78","unresolved":false,"context_lines":[{"line_number":1494,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1495,"context_line":""},{"line_number":1496,"context_line":"        mock_volume.assert_called_once_with(self.context, fake_inst,"},{"line_number":1497,"context_line":"                                            bdms\u003dNone)"},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"    def test_resize_quota_exceeds_fails(self):"},{"line_number":1500,"context_line":"        self.mox.StubOutWithMock(flavors, \u0027get_flavor_by_flavor_id\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_fc397cd9","line":1497,"updated":"2015-08-10 04:59:55.000000000","message":"so, as it\u0027s shown by gating, default args are not stored in a mock call","commit_id":"f99a55d2f3cda51c6cbc4b952ae5b9bd70dbe416"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5f767798fb22f5cd1482a6b2e6c65ca148a5c274","unresolved":false,"context_lines":[{"line_number":1501,"context_line":"                               \u0027is_volume_backed_instance\u0027,"},{"line_number":1502,"context_line":"                               return_value\u003dFalse):"},{"line_number":1503,"context_line":"            self.assertRaises(exception.CannotResizeDisk,"},{"line_number":1504,"context_line":"                          self.compute_api.resize, self.context,"},{"line_number":1505,"context_line":"                          fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1506,"context_line":""},{"line_number":1507,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":1508,"context_line":"    @mock.patch(\u0027nova.compute.api.API._resize_cells_support\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_d76f0d5e","line":1505,"range":{"start_line":1504,"start_character":26,"end_line":1505,"end_character":59},"updated":"2015-08-13 02:31:32.000000000","message":"For consistency, could you left-align these lines with the paren the way you have on L1500 - 1502?","commit_id":"ec87ff35d5594aa834deab8e9efe53c799f99f01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5f767798fb22f5cd1482a6b2e6c65ca148a5c274","unresolved":false,"context_lines":[{"line_number":1509,"context_line":"    @mock.patch(\u0027nova.conductor.conductor_api.ComputeTaskAPI.resize_instance\u0027)"},{"line_number":1510,"context_line":"    @mock.patch.object(flavors, \u0027get_flavor_by_flavor_id\u0027)"},{"line_number":1511,"context_line":"    def test_resize_to_zero_disk_flavor_volume_backed(self,"},{"line_number":1512,"context_line":"                                            get_flavor_by_flavor_id,"},{"line_number":1513,"context_line":"                                            resize_instance_mock,"},{"line_number":1514,"context_line":"                                            cells_support_mock,"},{"line_number":1515,"context_line":"                                            record_mock):"},{"line_number":1516,"context_line":"        params \u003d dict(image_ref\u003d\u0027\u0027)"},{"line_number":1517,"context_line":"        fake_inst \u003d self._create_instance_obj(params\u003dparams)"},{"line_number":1518,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_f7a569a1","line":1515,"range":{"start_line":1512,"start_character":44,"end_line":1515,"end_character":57},"updated":"2015-08-13 02:31:32.000000000","message":"Please left-align with \"self\" for consistency","commit_id":"ec87ff35d5594aa834deab8e9efe53c799f99f01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5f767798fb22f5cd1482a6b2e6c65ca148a5c274","unresolved":false,"context_lines":[{"line_number":1517,"context_line":"        fake_inst \u003d self._create_instance_obj(params\u003dparams)"},{"line_number":1518,"context_line":""},{"line_number":1519,"context_line":"        fake_flavor \u003d self._create_flavor(id\u003d200, flavorid\u003d\u0027flavor-id\u0027,"},{"line_number":1520,"context_line":"                            name\u003d\u0027foo\u0027, root_gb\u003d0)"},{"line_number":1521,"context_line":""},{"line_number":1522,"context_line":"        get_flavor_by_flavor_id.return_value \u003d fake_flavor"},{"line_number":1523,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_77063987","line":1520,"range":{"start_line":1520,"start_character":28,"end_line":1520,"end_character":50},"updated":"2015-08-13 02:31:32.000000000","message":"Left-align with \"id\u003d200\"","commit_id":"ec87ff35d5594aa834deab8e9efe53c799f99f01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5f767798fb22f5cd1482a6b2e6c65ca148a5c274","unresolved":false,"context_lines":[{"line_number":1521,"context_line":""},{"line_number":1522,"context_line":"        get_flavor_by_flavor_id.return_value \u003d fake_flavor"},{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"        with contextlib.nested("},{"line_number":1525,"context_line":"            mock.patch.object(self.compute_api, \u0027is_volume_backed_instance\u0027,"},{"line_number":1526,"context_line":"                               return_value\u003dTrue),"},{"line_number":1527,"context_line":"            mock.patch.object(fake_inst, \u0027save\u0027)) as (mock_volume, mock_save):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_370af179","line":1524,"updated":"2015-08-13 02:31:32.000000000","message":"Instead of contextlib.nested, could you please decorate a _test or do_test function and call it? For example:\n\n @mock.patch.object(self.compute_api, \u0027is_volume_backed_instance\u0027,\n                    return_value\u003dTrue)\n @mock.patch.object(fake_inst, \u0027save\u0027)\n def do_test(mock_save, mock_volume):\n     self.compute_api.resize(self.context, fake_inst,\n                             flavor_id\u003d\u0027flavor-id\u0027)\n\n do_test()","commit_id":"ec87ff35d5594aa834deab8e9efe53c799f99f01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5f767798fb22f5cd1482a6b2e6c65ca148a5c274","unresolved":false,"context_lines":[{"line_number":1523,"context_line":""},{"line_number":1524,"context_line":"        with contextlib.nested("},{"line_number":1525,"context_line":"            mock.patch.object(self.compute_api, \u0027is_volume_backed_instance\u0027,"},{"line_number":1526,"context_line":"                               return_value\u003dTrue),"},{"line_number":1527,"context_line":"            mock.patch.object(fake_inst, \u0027save\u0027)) as (mock_volume, mock_save):"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"            self.compute_api.resize(self.context,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_f7d32902","line":1526,"range":{"start_line":1526,"start_character":31,"end_line":1526,"end_character":50},"updated":"2015-08-13 02:31:32.000000000","message":"Alignment is off by one","commit_id":"ec87ff35d5594aa834deab8e9efe53c799f99f01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5f767798fb22f5cd1482a6b2e6c65ca148a5c274","unresolved":false,"context_lines":[{"line_number":1527,"context_line":"            mock.patch.object(fake_inst, \u0027save\u0027)) as (mock_volume, mock_save):"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"            self.compute_api.resize(self.context,"},{"line_number":1530,"context_line":"                                fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1531,"context_line":""},{"line_number":1532,"context_line":"        mock_volume.assert_called_once_with(self.context, fake_inst)"},{"line_number":1533,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_57b1bdde","line":1530,"range":{"start_line":1530,"start_character":32,"end_line":1530,"end_character":65},"updated":"2015-08-13 02:31:32.000000000","message":"Left-align with \"self.context\"","commit_id":"ec87ff35d5594aa834deab8e9efe53c799f99f01"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a71ea5fe2c24cb229ad9da3dfcde11c7e3ff5285","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"                               \u0027is_volume_backed_instance\u0027,"},{"line_number":1466,"context_line":"                               return_value\u003dFalse):"},{"line_number":1467,"context_line":"            self.assertRaises(exception.CannotResizeDisk,"},{"line_number":1468,"context_line":"                          self.compute_api.resize, self.context,"},{"line_number":1469,"context_line":"                          fake_inst, flavor_id\u003d\u0027flavor-id\u0027)"},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"    @mock.patch(\u0027nova.compute.api.API._record_action_start\u0027)"},{"line_number":1472,"context_line":"    @mock.patch(\u0027nova.compute.api.API._resize_cells_support\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_d2bddbb1","line":1469,"range":{"start_line":1468,"start_character":26,"end_line":1469,"end_character":59},"updated":"2015-08-13 03:00:55.000000000","message":"These lines were missed","commit_id":"a1cd28889d2f408f9356b7f2ceb7a909b0e74859"}]}
