)]}'
{"nova/tests/unit/virt/xenapi/image/test_utils.py":[{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    def test_as_tarfile(self):"},{"line_number":141,"context_line":"        image \u003d utils.RawTGZImage(None)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        with test.nested("},{"line_number":144,"context_line":"            mock.patch.object(image, \u0027_as_file\u0027, return_value\u003d\u0027the_file\u0027),"},{"line_number":145,"context_line":"            mock.patch.object(utils.tarfile, \u0027open\u0027, return_value\u003d\u0027tf\u0027),"},{"line_number":146,"context_line":"        ) as (mock_as_file, mock_open):"},{"line_number":147,"context_line":"            result \u003d image._as_tarfile()"},{"line_number":148,"context_line":"            self.assertEqual(\u0027tf\u0027, result)"},{"line_number":149,"context_line":"            mock_as_file.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_7bc274ea","line":146,"range":{"start_line":143,"start_character":0,"end_line":146,"end_character":39},"updated":"2017-02-24 21:14:47.000000000","message":"nit: I would suggest use of decorators instead just to make code more readable. \nBut this is non blocking. You can make changes in case if you upload another patch set for some other reason.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    def test_as_tarfile(self):"},{"line_number":141,"context_line":"        image \u003d utils.RawTGZImage(None)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        with test.nested("},{"line_number":144,"context_line":"            mock.patch.object(image, \u0027_as_file\u0027, return_value\u003d\u0027the_file\u0027),"},{"line_number":145,"context_line":"            mock.patch.object(utils.tarfile, \u0027open\u0027, return_value\u003d\u0027tf\u0027),"},{"line_number":146,"context_line":"        ) as (mock_as_file, mock_open):"},{"line_number":147,"context_line":"            result \u003d image._as_tarfile()"},{"line_number":148,"context_line":"            self.assertEqual(\u0027tf\u0027, result)"},{"line_number":149,"context_line":"            mock_as_file.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_2587b213","line":146,"range":{"start_line":143,"start_character":0,"end_line":146,"end_character":39},"in_reply_to":"da36d5c6_7bc274ea","updated":"2017-03-01 14:41:52.000000000","message":"Done","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        ) as (mock_as_file, mock_open):"},{"line_number":147,"context_line":"            result \u003d image._as_tarfile()"},{"line_number":148,"context_line":"            self.assertEqual(\u0027tf\u0027, result)"},{"line_number":149,"context_line":"            mock_as_file.assert_called_once_with()"},{"line_number":150,"context_line":"            mock_open.assert_called_once_with(mode\u003d\u0027r|gz\u0027, fileobj\u003d\u0027the_file\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_as_file(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_db70c00d","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":50},"updated":"2017-02-24 21:14:47.000000000","message":"I think we can use assert_called_once() if we are not specifying any arguments.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        ) as (mock_as_file, mock_open):"},{"line_number":147,"context_line":"            result \u003d image._as_tarfile()"},{"line_number":148,"context_line":"            self.assertEqual(\u0027tf\u0027, result)"},{"line_number":149,"context_line":"            mock_as_file.assert_called_once_with()"},{"line_number":150,"context_line":"            mock_open.assert_called_once_with(mode\u003d\u0027r|gz\u0027, fileobj\u003d\u0027the_file\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_as_file(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_059c6e68","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":50},"in_reply_to":"da36d5c6_db70c00d","updated":"2017-03-01 14:41:52.000000000","message":"assert_called_once() is introduced in python 3.6. It will not work for older python.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            self.assertEqual(124, result)"},{"line_number":178,"context_line":"            self.assertEqual(image._tar_info, tar_info)"},{"line_number":179,"context_line":"            self.assertEqual(image._tar_file, tar_file)"},{"line_number":180,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":181,"context_line":"            tar_file.next.assert_called_once_with()"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_get_size_called_twice(self):"},{"line_number":184,"context_line":"        tar_file \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_5b63f041","line":181,"range":{"start_line":180,"start_character":1,"end_line":181,"end_character":51},"updated":"2017-02-24 21:14:47.000000000","message":"same as above.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            self.assertEqual(124, result)"},{"line_number":178,"context_line":"            self.assertEqual(image._tar_info, tar_info)"},{"line_number":179,"context_line":"            self.assertEqual(image._tar_file, tar_file)"},{"line_number":180,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":181,"context_line":"            tar_file.next.assert_called_once_with()"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_get_size_called_twice(self):"},{"line_number":184,"context_line":"        tar_file \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_6581aafb","line":181,"range":{"start_line":180,"start_character":1,"end_line":181,"end_character":51},"in_reply_to":"da36d5c6_5b63f041","updated":"2017-03-01 14:41:52.000000000","message":"ditto","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            self.assertEqual(124, result)"},{"line_number":197,"context_line":"            self.assertEqual(image._tar_info, tar_info)"},{"line_number":198,"context_line":"            self.assertEqual(image._tar_file, tar_file)"},{"line_number":199,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":200,"context_line":"            tar_file.next.assert_called_once_with()"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_stream_to_without_size_retrieved(self):"},{"line_number":203,"context_line":"        source_tar \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_9b59e890","line":200,"range":{"start_line":199,"start_character":0,"end_line":200,"end_character":51},"updated":"2017-02-24 21:14:47.000000000","message":"same as above.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            self.assertEqual(124, result)"},{"line_number":197,"context_line":"            self.assertEqual(image._tar_info, tar_info)"},{"line_number":198,"context_line":"            self.assertEqual(image._tar_file, tar_file)"},{"line_number":199,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":200,"context_line":"            tar_file.next.assert_called_once_with()"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_stream_to_without_size_retrieved(self):"},{"line_number":203,"context_line":"        source_tar \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_85869e11","line":200,"range":{"start_line":199,"start_character":0,"end_line":200,"end_character":51},"in_reply_to":"da36d5c6_9b59e890","updated":"2017-03-01 14:41:52.000000000","message":"ditto","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        ) as (mock_as_tar, mock_copyfile):"},{"line_number":218,"context_line":"            image.stream_to(target_file)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":221,"context_line":"            source_tar.next.assert_called_once_with()"},{"line_number":222,"context_line":"            source_tar.extractfile.assert_called_once_with(first_tarinfo)"},{"line_number":223,"context_line":"            mock_copyfile.assert_called_once_with("},{"line_number":224,"context_line":"                source_file, target_file)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_db57e055","line":221,"range":{"start_line":220,"start_character":0,"end_line":221,"end_character":53},"updated":"2017-02-24 21:14:47.000000000","message":"same as above.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        ) as (mock_as_tar, mock_copyfile):"},{"line_number":218,"context_line":"            image.stream_to(target_file)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":221,"context_line":"            source_tar.next.assert_called_once_with()"},{"line_number":222,"context_line":"            source_tar.extractfile.assert_called_once_with(first_tarinfo)"},{"line_number":223,"context_line":"            mock_copyfile.assert_called_once_with("},{"line_number":224,"context_line":"                source_file, target_file)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_a57ba228","line":221,"range":{"start_line":220,"start_character":0,"end_line":221,"end_character":53},"in_reply_to":"da36d5c6_db57e055","updated":"2017-03-01 14:41:52.000000000","message":"ditto","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            image.get_size()"},{"line_number":245,"context_line":"            image.stream_to(target_file)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":248,"context_line":"            source_tar.next.assert_called_once_with()"},{"line_number":249,"context_line":"            source_tar.extractfile.assert_called_once_with(first_tarinfo)"},{"line_number":250,"context_line":"            mock_copyfile.assert_called_once_with("},{"line_number":251,"context_line":"                source_file, target_file)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_3b49dcb7","line":248,"range":{"start_line":247,"start_character":0,"end_line":248,"end_character":53},"updated":"2017-02-24 21:14:47.000000000","message":"same as above.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            image.get_size()"},{"line_number":245,"context_line":"            image.stream_to(target_file)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"            mock_as_tar.assert_called_once_with()"},{"line_number":248,"context_line":"            source_tar.next.assert_called_once_with()"},{"line_number":249,"context_line":"            source_tar.extractfile.assert_called_once_with(first_tarinfo)"},{"line_number":250,"context_line":"            mock_copyfile.assert_called_once_with("},{"line_number":251,"context_line":"                source_file, target_file)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_e5759a32","line":248,"range":{"start_line":247,"start_character":0,"end_line":248,"end_character":53},"in_reply_to":"da36d5c6_3b49dcb7","updated":"2017-03-01 14:41:52.000000000","message":"ditto","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18335,"name":"Pushkar Umaranikar","email":"pushkar.umaranikar@intel.com","username":"pushkarumaranikar"},"change_message_id":"cd2776c54b0ff51dce67f48266e56c3259c11401","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            source_tar.extractfile.assert_called_once_with(first_tarinfo)"},{"line_number":250,"context_line":"            mock_copyfile.assert_called_once_with("},{"line_number":251,"context_line":"                source_file, target_file)"},{"line_number":252,"context_line":"            source_tar.close.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_1baa5819","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":54},"updated":"2017-02-24 21:14:47.000000000","message":"same as above.","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":18320,"name":"Dao Cong Tien","email":"tiendc@vn.fujitsu.com","username":"TienDC"},"change_message_id":"a77272820d14499fd78ed14abd0945e9f282dbe9","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            source_tar.extractfile.assert_called_once_with(first_tarinfo)"},{"line_number":250,"context_line":"            mock_copyfile.assert_called_once_with("},{"line_number":251,"context_line":"                source_file, target_file)"},{"line_number":252,"context_line":"            source_tar.close.assert_called_once_with()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_05738e4e","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":54},"in_reply_to":"da36d5c6_1baa5819","updated":"2017-03-01 14:41:52.000000000","message":"ditto","commit_id":"198aa574dbb2dfa61e8ed966cdeea3b11bae7b00"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class RawImageTestCase(test.NoDBTestCase):"},{"line_number":72,"context_line":"    def test_get_size(self):"},{"line_number":73,"context_line":"        glance_image \u003d mock.create_autospec(utils.GlanceImage, spec_set\u003dTrue)"},{"line_number":74,"context_line":"        glance_image.meta \u003d {\u0027size\u0027: \u0027123\u0027}"},{"line_number":75,"context_line":"        raw_image \u003d utils.RawImage(glance_image)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_023c29e1","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":77},"updated":"2017-03-02 06:07:01.000000000","message":"It can be decorator like this:\n\n @mock.patch.object(utils, \u0027GlanceImage\u0027, spec_set\u003dTrue, autospec\u003dTrue)","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"24ae70d0be4052b78c0e4e405bb5b56cb6a0d34f","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class RawImageTestCase(test.NoDBTestCase):"},{"line_number":72,"context_line":"    def test_get_size(self):"},{"line_number":73,"context_line":"        glance_image \u003d mock.create_autospec(utils.GlanceImage, spec_set\u003dTrue)"},{"line_number":74,"context_line":"        glance_image.meta \u003d {\u0027size\u0027: \u0027123\u0027}"},{"line_number":75,"context_line":"        raw_image \u003d utils.RawImage(glance_image)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_146752b9","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":77},"in_reply_to":"ba2be162_023c29e1","updated":"2017-04-12 01:26:03.000000000","message":"Agree with Naohiro","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.assertEqual(123, raw_image.get_size())"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def test_stream_to(self):"},{"line_number":80,"context_line":"        glance_image \u003d mock.create_autospec(utils.GlanceImage, spec_set\u003dTrue)"},{"line_number":81,"context_line":"        glance_image.download_to.return_value \u003d \u0027result\u0027"},{"line_number":82,"context_line":"        raw_image \u003d utils.RawImage(glance_image)"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_3d3b0ed3","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":77},"updated":"2017-03-02 06:07:01.000000000","message":"It can be decorator too, therefor this class can be written like this:\n\n @mock.patch.object(utils, \u0027GlanceImage\u0027, spec_set\u003dTrue, autospec\u003dTrue)\n class RawImageTestCase(test.NoDBTestCase):\n     def test_get_size(self, glance_image):\n         glance_image.meta \u003d {\u0027size\u0027: \u0027123\u0027}\n         raw_image \u003d utils.RawImage(glance_image)\n \n         self.assertEqual(123, raw_image.get_size())\n \n     def test_stream_to(self, glance_image):\n         glance_image.download_to.return_value \u003d \u0027result\u0027\n         raw_image \u003d utils.RawImage(glance_image)\n \n         self.assertEqual(\u0027result\u0027, raw_image.stream_to(\u0027file\u0027))\n         \n         glance_image.download_to.assert_called_once_with(\u0027file\u0027)\n\nI verified it worked:\n\n (py27) naohirot@ubuntu:~/work/src/nova[review/dao_cong_tien/bp/remove-mox-pike]$ python -m testtools.run nova.tests.unit.virt.xenapi.image.test_utils.RawImageTestCase\n Tests running...\n \n Ran 2 tests in 0.338s\n OK","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    @mock.patch.object(utils, \u0027IterableToFileAdapter\u0027,"},{"line_number":150,"context_line":"                       return_value\u003d\u0027data-as-file\u0027)"},{"line_number":151,"context_line":"    def test_as_file(self, mock_adapter):"},{"line_number":152,"context_line":"        glance_image \u003d mock.create_autospec(utils.GlanceImage, spec_set\u003dTrue)"},{"line_number":153,"context_line":"        glance_image.data.return_value \u003d \u0027iterable-data\u0027"},{"line_number":154,"context_line":"        image \u003d utils.RawTGZImage(glance_image)"},{"line_number":155,"context_line":"        result \u003d image._as_file()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_dd9e72b7","line":152,"range":{"start_line":152,"start_character":8,"end_line":152,"end_character":76},"updated":"2017-03-02 06:07:01.000000000","message":"ditto","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    @mock.patch.object(utils.RawTGZImage, \u0027_as_tarfile\u0027)"},{"line_number":161,"context_line":"    def test_get_size(self, mock_as_tar):"},{"line_number":162,"context_line":"        tar_file \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"},{"line_number":163,"context_line":"        tar_info \u003d mock.create_autospec(tarfile.TarInfo)"},{"line_number":164,"context_line":"        tar_file.next.return_value \u003d tar_info"},{"line_number":165,"context_line":"        tar_info.size \u003d 124"},{"line_number":166,"context_line":"        mock_as_tar.return_value \u003d tar_file"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_3db06e43","line":163,"range":{"start_line":162,"start_character":8,"end_line":163,"end_character":56},"updated":"2017-03-02 06:07:01.000000000","message":"ditto","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    @mock.patch.object(utils.RawTGZImage, \u0027_as_tarfile\u0027)"},{"line_number":178,"context_line":"    def test_get_size_called_twice(self, mock_as_tar):"},{"line_number":179,"context_line":"        tar_file \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"},{"line_number":180,"context_line":"        tar_info \u003d mock.create_autospec(tarfile.TarInfo)"},{"line_number":181,"context_line":"        tar_file.next.return_value \u003d tar_info"},{"line_number":182,"context_line":"        tar_info.size \u003d 124"},{"line_number":183,"context_line":"        mock_as_tar.return_value \u003d tar_file"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_9db5da32","line":180,"range":{"start_line":179,"start_character":8,"end_line":180,"end_character":56},"updated":"2017-03-02 06:07:01.000000000","message":"ditto","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    @mock.patch.object(utils.shutil, \u0027copyfileobj\u0027)"},{"line_number":197,"context_line":"    def test_stream_to_without_size_retrieved(self, mock_copyfile,"},{"line_number":198,"context_line":"                                              mock_as_tar):"},{"line_number":199,"context_line":"        source_tar \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"},{"line_number":200,"context_line":"        first_tarinfo \u003d mock.create_autospec(tarfile.TarInfo, spec_set\u003dTrue)"},{"line_number":201,"context_line":"        target_file \u003d mock.create_autospec(open)"},{"line_number":202,"context_line":"        source_file \u003d mock.create_autospec(open)"},{"line_number":203,"context_line":"        source_tar.next.return_value \u003d first_tarinfo"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_dd859259","line":200,"range":{"start_line":199,"start_character":8,"end_line":200,"end_character":76},"updated":"2017-03-02 06:07:01.000000000","message":"ditto","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    @mock.patch.object(utils.shutil, \u0027copyfileobj\u0027)"},{"line_number":220,"context_line":"    def test_stream_to_with_size_retrieved(self, mock_copyfile,"},{"line_number":221,"context_line":"                                           mock_as_tar):"},{"line_number":222,"context_line":"        source_tar \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"},{"line_number":223,"context_line":"        first_tarinfo \u003d mock.create_autospec(tarfile.TarInfo)"},{"line_number":224,"context_line":"        target_file \u003d mock.create_autospec(open)"},{"line_number":225,"context_line":"        source_file \u003d mock.create_autospec(open)"},{"line_number":226,"context_line":"        first_tarinfo.size \u003d 124"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_7d910699","line":223,"range":{"start_line":222,"start_character":8,"end_line":223,"end_character":61},"updated":"2017-03-02 06:07:01.000000000","message":"ditto","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"},{"author":{"_account_id":13719,"name":"Naohiro Tamura","email":"naohirot.openstack@gmail.com","username":"nao"},"change_message_id":"08cde60205889ec286f62e2b953061a0cc7b200e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                                           mock_as_tar):"},{"line_number":222,"context_line":"        source_tar \u003d mock.create_autospec(tarfile.TarFile, spec_set\u003dTrue)"},{"line_number":223,"context_line":"        first_tarinfo \u003d mock.create_autospec(tarfile.TarInfo)"},{"line_number":224,"context_line":"        target_file \u003d mock.create_autospec(open)"},{"line_number":225,"context_line":"        source_file \u003d mock.create_autospec(open)"},{"line_number":226,"context_line":"        first_tarinfo.size \u003d 124"},{"line_number":227,"context_line":"        source_tar.next.return_value \u003d first_tarinfo"},{"line_number":228,"context_line":"        source_tar.extractfile.return_value \u003d source_file"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba2be162_1df72af6","line":225,"range":{"start_line":224,"start_character":8,"end_line":225,"end_character":48},"updated":"2017-03-02 06:07:01.000000000","message":"ditto, I believe.","commit_id":"b2d58475e213bd07bcf2d1a0d3f7816820034048"}]}
