| @@ -1,7 +1,8 @@ | |||||
| import pytest | import pytest | ||||
| from focker.image import validate_spec, \ | from focker.image import validate_spec, \ | ||||
| build_squeeze, \ | build_squeeze, \ | ||||
| build | |||||
| build, \ | |||||
| command_image_build | |||||
| import subprocess | import subprocess | ||||
| from tempfile import TemporaryDirectory | from tempfile import TemporaryDirectory | ||||
| import focker.image | import focker.image | ||||
| @@ -10,6 +11,7 @@ from focker.zfs import zfs_find, \ | |||||
| zfs_mountpoint, \ | zfs_mountpoint, \ | ||||
| zfs_exists_snapshot_sha256 | zfs_exists_snapshot_sha256 | ||||
| from focker.misc import focker_unlock | from focker.misc import focker_unlock | ||||
| import yaml | |||||
| def test_validate_spec_01(): | def test_validate_spec_01(): | ||||
| @@ -91,3 +93,30 @@ def test_build(monkeypatch): | |||||
| assert os.path.exists(os.path.join(mountpoint, 'etc/hosts')) | assert os.path.exists(os.path.join(mountpoint, 'etc/hosts')) | ||||
| subprocess.check_output(['focker', 'image', 'remove', '-R', 'test-build-squeeze-base']) | subprocess.check_output(['focker', 'image', 'remove', '-R', 'test-build-squeeze-base']) | ||||
| assert not os.path.exists(mountpoint) | assert not os.path.exists(mountpoint) | ||||
| def test_command_image_build(): | |||||
| focker_unlock() | |||||
| subprocess.check_output(['focker', 'image', 'remove', '--force', '-R', 'test-command-image-build-base']) | |||||
| subprocess.check_output(['focker', 'bootstrap', '--dry-run', '-t', 'test-command-image-build-base']) | |||||
| with TemporaryDirectory() as d: | |||||
| args = lambda: 0 | |||||
| with open(os.path.join(d, 'Fockerfile'), 'w') as f: | |||||
| yaml.dump(dict(base='test-command-image-build-base', steps=[ | |||||
| dict(copy=['/etc/localtime', '/etc/localtime']), | |||||
| dict(copy=['/etc/hosts', '/etc/hosts']) | |||||
| ]), f) | |||||
| args.focker_dir = d | |||||
| args.squeeze = False | |||||
| args.tags = [ 'test-command-image-build' ] | |||||
| command_image_build(args) | |||||
| focker_unlock() | |||||
| name, _ = zfs_find('test-command-image-build', focker_type='image') | |||||
| mountpoint = zfs_mountpoint(name) | |||||
| assert os.path.exists(os.path.join(mountpoint, 'etc/localtime')) | |||||
| assert os.path.exists(os.path.join(mountpoint, 'etc/hosts')) | |||||
| subprocess.check_output(['focker', 'image', 'remove', '-R', 'test-command-image-build-base']) | |||||
| assert not os.path.exists(mountpoint) | |||||