)]}'
{"nova/tests/unit/virt/libvirt/test_imagebackend.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.mox.VerifyAll()"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    @mock.patch.object(images, \u0027qemu_img_info\u0027,"},{"line_number":365,"context_line":"                       return_value\u003dimageutils.QemuImgInfo())"},{"line_number":366,"context_line":"    def test_create_image_extend(self, fake_qemu_img_info):"},{"line_number":367,"context_line":"        fn \u003d self.prepare_mocks()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_6b94d7e1","side":"PARENT","line":364,"updated":"2016-11-24 11:14:11.000000000","message":"Nit: I much prefer keeping the decorator rather than using nested, for future patches.","commit_id":"dfe4259cedc114f3fdfc200e5c502744cb1ceeef"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.mox.VerifyAll()"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    @mock.patch.object(images, \u0027qemu_img_info\u0027,"},{"line_number":365,"context_line":"                       return_value\u003dimageutils.QemuImgInfo())"},{"line_number":366,"context_line":"    def test_create_image_extend(self, fake_qemu_img_info):"},{"line_number":367,"context_line":"        fn \u003d self.prepare_mocks()"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_58326f11","side":"PARENT","line":364,"in_reply_to":"5a74a57a_6b94d7e1","updated":"2016-11-25 08:51:48.000000000","message":"roger!","commit_id":"dfe4259cedc114f3fdfc200e5c502744cb1ceeef"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    def test_create_image(self):"},{"line_number":336,"context_line":"        def _fake_deco(func):"},{"line_number":337,"context_line":"            return func"},{"line_number":338,"context_line":"        with test.nested("},{"line_number":339,"context_line":"            mock.patch.object(imagebackend.disk, \u0027extend\u0027),"},{"line_number":340,"context_line":"            mock.patch.object(imagebackend.libvirt_utils, \u0027copy_image\u0027),"},{"line_number":341,"context_line":"            mock.patch.object(imagebackend.utils, \u0027synchronized\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_4bcabb6f","line":338,"updated":"2016-11-24 11:14:11.000000000","message":"Nit: I think using decorators is our preferred style in Nova.","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":335,"context_line":"    def test_create_image(self):"},{"line_number":336,"context_line":"        def _fake_deco(func):"},{"line_number":337,"context_line":"            return func"},{"line_number":338,"context_line":"        with test.nested("},{"line_number":339,"context_line":"            mock.patch.object(imagebackend.disk, \u0027extend\u0027),"},{"line_number":340,"context_line":"            mock.patch.object(imagebackend.libvirt_utils, \u0027copy_image\u0027),"},{"line_number":341,"context_line":"            mock.patch.object(imagebackend.utils, \u0027synchronized\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_38bbf30f","line":338,"in_reply_to":"5a74a57a_4bcabb6f","updated":"2016-11-25 08:51:48.000000000","message":"Done","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            mock.patch.object(imagebackend.disk, \u0027extend\u0027),"},{"line_number":340,"context_line":"            mock.patch.object(imagebackend.libvirt_utils, \u0027copy_image\u0027),"},{"line_number":341,"context_line":"            mock.patch.object(imagebackend.utils, \u0027synchronized\u0027,"},{"line_number":342,"context_line":"                              side_effect\u003dlambda *a, **kw: _fake_deco)"},{"line_number":343,"context_line":"        ) as (mock_extend, mock_copy, mock_sync):"},{"line_number":344,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":345,"context_line":"            fn(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_8ee30133","line":342,"range":{"start_line":342,"start_character":59,"end_line":342,"end_character":69},"updated":"2016-11-24 11:14:11.000000000","message":"Nit:Could this not be\n\n  lambda x: x","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            mock.patch.object(imagebackend.disk, \u0027extend\u0027),"},{"line_number":340,"context_line":"            mock.patch.object(imagebackend.libvirt_utils, \u0027copy_image\u0027),"},{"line_number":341,"context_line":"            mock.patch.object(imagebackend.utils, \u0027synchronized\u0027,"},{"line_number":342,"context_line":"                              side_effect\u003dlambda *a, **kw: _fake_deco)"},{"line_number":343,"context_line":"        ) as (mock_extend, mock_copy, mock_sync):"},{"line_number":344,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":345,"context_line":"            fn(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_181c7711","line":342,"range":{"start_line":342,"start_character":59,"end_line":342,"end_character":69},"in_reply_to":"5a74a57a_8ee30133","updated":"2016-11-25 08:51:48.000000000","message":"IMO this is not correct because we are mocking the decorator with *a, **kw params as below:\n@utils.synchronized(filename, external\u003dTrue, lock_path\u003dself.lock_path)","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                              side_effect\u003dlambda *a, **kw: _fake_deco)"},{"line_number":343,"context_line":"        ) as (mock_extend, mock_copy, mock_sync):"},{"line_number":344,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":345,"context_line":"            fn(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"},{"line_number":346,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":347,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH, None, image_id\u003dNone)"},{"line_number":348,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_6bc5b73a","line":345,"updated":"2016-11-24 11:14:11.000000000","message":"I don\u0027t believe this line is doing anything, this is using the mox way of doing things that has no affect here.\n\nWhat you want to do is fn.assert_called_once_with(...) instead, if I am reading this correctly.","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                              side_effect\u003dlambda *a, **kw: _fake_deco)"},{"line_number":343,"context_line":"        ) as (mock_extend, mock_copy, mock_sync):"},{"line_number":344,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":345,"context_line":"            fn(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"},{"line_number":346,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":347,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH, None, image_id\u003dNone)"},{"line_number":348,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_783bab9c","line":345,"in_reply_to":"5a74a57a_6bc5b73a","updated":"2016-11-25 08:51:48.000000000","message":"Done","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                              side_effect\u003dlambda *a, **kw: _fake_deco)"},{"line_number":361,"context_line":"        ) as (mock_extend, mock_copy, mock_sync):"},{"line_number":362,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":363,"context_line":"            fn(target\u003dself.PATH)"},{"line_number":364,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_8b45b3b4","line":363,"updated":"2016-11-24 11:14:11.000000000","message":"same issue with fn here I believe.","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                              side_effect\u003dlambda *a, **kw: _fake_deco)"},{"line_number":361,"context_line":"        ) as (mock_extend, mock_copy, mock_sync):"},{"line_number":362,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":363,"context_line":"            fn(target\u003dself.PATH)"},{"line_number":364,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_58d42f1f","line":363,"in_reply_to":"5a74a57a_8b45b3b4","updated":"2016-11-25 08:51:48.000000000","message":"Done","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                                  return_value\u003dimageutils.QemuImgInfo())"},{"line_number":382,"context_line":"        ) as (mock_extend, mock_copy, mock_sync, fake_qemu_img_info):"},{"line_number":383,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":384,"context_line":"            fn(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"},{"line_number":385,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_eb0c6796","line":384,"updated":"2016-11-24 11:14:11.000000000","message":"ditto","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                                  return_value\u003dimageutils.QemuImgInfo())"},{"line_number":382,"context_line":"        ) as (mock_extend, mock_copy, mock_sync, fake_qemu_img_info):"},{"line_number":383,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":384,"context_line":"            fn(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"},{"line_number":385,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_389cd368","line":384,"in_reply_to":"5a74a57a_eb0c6796","updated":"2016-11-25 08:51:48.000000000","message":"Done","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d788e9c58761874bb5978895ea91bba967222779","unresolved":false,"context_lines":[{"line_number":509,"context_line":"            mock.patch.object(imagebackend.disk, \u0027extend\u0027)"},{"line_number":510,"context_line":"        ) as (mock_sync, mock_create, mock_extend):"},{"line_number":511,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":512,"context_line":"            fn(target\u003dself.TEMPLATE_PATH)"},{"line_number":513,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_0b71a3e0","line":512,"updated":"2016-11-24 11:14:11.000000000","message":"As above.","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":19741,"name":"Hieu LE","email":"hieulq2@viettel.com.vn","username":"hieulq"},"change_message_id":"f3bf51423e206c2d57a5e5301e0ffd9ae44d928c","unresolved":false,"context_lines":[{"line_number":509,"context_line":"            mock.patch.object(imagebackend.disk, \u0027extend\u0027)"},{"line_number":510,"context_line":"        ) as (mock_sync, mock_create, mock_extend):"},{"line_number":511,"context_line":"            fn \u003d mock.MagicMock()"},{"line_number":512,"context_line":"            fn(target\u003dself.TEMPLATE_PATH)"},{"line_number":513,"context_line":"            image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            image.create_image(fn, self.TEMPLATE_PATH, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a74a57a_38ef73b1","line":512,"in_reply_to":"5a74a57a_0b71a3e0","updated":"2016-11-25 08:51:48.000000000","message":"Done","commit_id":"795f383ec7ab31e831b6ac53fa220c8f582d4e99"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f72c3f3fae89146d05e0ef7fecb061fede3aeda","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        mock_sync.side_effect \u003d lambda *a, **kw: self._fake_deco"},{"line_number":345,"context_line":"        fn \u003d mock.MagicMock()"},{"line_number":346,"context_line":"        image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":347,"context_line":"        image.create_image(fn, self.TEMPLATE_PATH, None, image_id\u003dNone)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        mock_copy.assert_called_once_with(self.TEMPLATE_PATH, self.PATH)"},{"line_number":350,"context_line":"        fn.assert_called_once_with(target\u003dself.TEMPLATE_PATH, image_id\u003dNone)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_f49392f8","line":347,"updated":"2017-01-27 18:44:49.000000000","message":"Nit: I would love a space before this line.","commit_id":"daf9e985f23a074c7a525c787bc98618f83ef248"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f72c3f3fae89146d05e0ef7fecb061fede3aeda","unresolved":false,"context_lines":[{"line_number":523,"context_line":"                       mock.call(self.INSTANCES_PATH),"},{"line_number":524,"context_line":"                       mock.call(self.TEMPLATE_PATH),"},{"line_number":525,"context_line":"                       mock.call(self.PATH),"},{"line_number":526,"context_line":"                       mock.call(self.PATH)]"},{"line_number":527,"context_line":"        image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        image.create_image(fn, self.TEMPLATE_PATH, self.SIZE)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_94408e58","line":526,"updated":"2017-01-27 18:44:49.000000000","message":"Nit: this would be way better declared nearer where it is used.","commit_id":"daf9e985f23a074c7a525c787bc98618f83ef248"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f72c3f3fae89146d05e0ef7fecb061fede3aeda","unresolved":false,"context_lines":[{"line_number":550,"context_line":"        mock_exist.side_effect \u003d [False, True, True]"},{"line_number":551,"context_line":"        exist_calls \u003d [mock.call(self.DISK_INFO_PATH),"},{"line_number":552,"context_line":"                       mock.call(self.INSTANCES_PATH),"},{"line_number":553,"context_line":"                       mock.call(self.TEMPLATE_PATH)]"},{"line_number":554,"context_line":"        image \u003d self.image_class(self.INSTANCE, self.NAME)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"        self.assertRaises(exception.FlavorDiskSmallerThanImage,"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a3905b3_572b8882","line":553,"updated":"2017-01-27 18:44:49.000000000","message":"As above.","commit_id":"daf9e985f23a074c7a525c787bc98618f83ef248"}]}
