cloud-build/tests/test_rename.py
2021-09-12 15:43:47 +03:00

56 lines
1.3 KiB
Python

from contextlib import ExitStack
from pathlib import Path
from unittest import TestCase
from unittest import mock
import os
import shutil
from cloud_build import CB
from tests.call import Call
def renamer(directory):
renamer = directory / 'renamer.py'
renamer.touch()
renamer.write_text('''\
#!/usr/bin/python3
print("lxd.tar.xz")
''')
renamer.chmod(0o700)
class TestRename(TestCase):
def setUp(self):
self.images = self.__class__.images
@classmethod
def setUpClass(cls):
cls.work_dir = Path('/tmp/cloud-build')
os.makedirs(cls.work_dir, exist_ok=True)
renamer(cls.work_dir)
with ExitStack() as stack:
stack.enter_context(mock.patch('subprocess.call', Call()))
cloud_build = CB(
config='tests/test_rename.yaml',
data_dir=(cls.work_dir / 'cloud_build').as_posix(),
)
cloud_build.create_images(no_tests=True)
cloud_build.sync(create_remote_dirs=True)
images_dir = cls.work_dir / 'images'
cls.images = os.listdir(images_dir)
@classmethod
def tearDownClass(cls):
shutil.rmtree(cls.work_dir, ignore_errors=True)
def test_simple_rename(self):
self.assertIn('docker.tar.xz', self.images)
def test_prog_rename(self):
self.assertIn('lxd.tar.xz', self.images)