def test_as_file(self, mock_adapter, mock_glance_image): mock_glance_image.data.return_value = 'iterable-data' image = utils.RawTGZImage(mock_glance_image) result = image._as_file() self.assertEqual('data-as-file', result) mock_glance_image.data.assert_called_once_with() mock_adapter.assert_called_once_with('iterable-data')
def test_as_file(self): self.mox.StubOutWithMock(utils, 'IterableToFileAdapter') glance_image = self.mox.CreateMock(utils.GlanceImage) image = utils.RawTGZImage(glance_image) glance_image.data().AndReturn('iterable-data') utils.IterableToFileAdapter('iterable-data').AndReturn('data-as-file') self.mox.ReplayAll() result = image._as_file() self.assertEqual('data-as-file', result)
def test_as_tarfile(self): image = utils.RawTGZImage(None) self.mox.StubOutWithMock(image, '_as_file') self.mox.StubOutWithMock(utils.tarfile, 'open') image._as_file().AndReturn('the_file') utils.tarfile.open(mode='r|gz', fileobj='the_file').AndReturn('tf') self.mox.ReplayAll() result = image._as_tarfile() self.assertEqual('tf', result)
def test_get_size(self, mock_as_tar, mock_tar_info, mock_tar_file): mock_tar_file.next.return_value = mock_tar_info mock_tar_info.size = 124 mock_as_tar.return_value = mock_tar_file image = utils.RawTGZImage(None) result = image.get_size() self.assertEqual(124, result) self.assertEqual(image._tar_info, mock_tar_info) self.assertEqual(image._tar_file, mock_tar_file) mock_as_tar.assert_called_once_with() mock_tar_file.next.assert_called_once_with()
def test_stream_to_without_size_retrieved(self, mock_copyfile, mock_as_tar, mock_tar_info, mock_tar_file): target_file = mock.create_autospec(open) source_file = mock.create_autospec(open) mock_tar_file.next.return_value = mock_tar_info mock_tar_file.extractfile.return_value = source_file mock_as_tar.return_value = mock_tar_file image = utils.RawTGZImage(None) image._image_service_and_image_id = ('service', 'id') image.stream_to(target_file) mock_as_tar.assert_called_once_with() mock_tar_file.next.assert_called_once_with() mock_tar_file.extractfile.assert_called_once_with(mock_tar_info) mock_copyfile.assert_called_once_with( source_file, target_file) mock_tar_file.close.assert_called_once_with()
def test_get_size(self): tar_file = self.mox.CreateMock(tarfile.TarFile) tar_info = self.mox.CreateMock(tarfile.TarInfo) image = utils.RawTGZImage(None) self.mox.StubOutWithMock(image, '_as_tarfile') image._as_tarfile().AndReturn(tar_file) tar_file.next().AndReturn(tar_info) tar_info.size = 124 self.mox.ReplayAll() result = image.get_size() self.assertEqual(124, result) self.assertEqual(image._tar_info, tar_info) self.assertEqual(image._tar_file, tar_file)
def test_stream_to_without_size_retrieved(self): source_tar = self.mox.CreateMock(tarfile.TarFile) first_tarinfo = self.mox.CreateMock(tarfile.TarInfo) target_file = self.mox.CreateMock(file) source_file = self.mox.CreateMock(file) image = utils.RawTGZImage(None) image._image_service_and_image_id = ('service', 'id') self.mox.StubOutWithMock(image, '_as_tarfile', source_tar) self.mox.StubOutWithMock(utils.shutil, 'copyfileobj') image._as_tarfile().AndReturn(source_tar) source_tar.next().AndReturn(first_tarinfo) source_tar.extractfile(first_tarinfo).AndReturn(source_file) utils.shutil.copyfileobj(source_file, target_file) source_tar.close() self.mox.ReplayAll() image.stream_to(target_file)
def test_as_tarfile(self, mock_open, mock_as_file): image = utils.RawTGZImage(None) result = image._as_tarfile() self.assertEqual('tf', result) mock_as_file.assert_called_once_with() mock_open.assert_called_once_with(mode='r|gz', fileobj='the_file')