56 lines
1.3 KiB
Python
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)
|