| @@ -4,7 +4,8 @@ from focker.image import validate_spec, \ | |||||
| build, \ | build, \ | ||||
| command_image_build, \ | command_image_build, \ | ||||
| command_image_tag, \ | command_image_tag, \ | ||||
| command_image_untag | |||||
| command_image_untag, \ | |||||
| command_image_list | |||||
| import subprocess | import subprocess | ||||
| from tempfile import TemporaryDirectory | from tempfile import TemporaryDirectory | ||||
| import focker.image | import focker.image | ||||
| @@ -162,3 +163,31 @@ def test_command_image_untag(): | |||||
| with pytest.raises(ValueError): | with pytest.raises(ValueError): | ||||
| zfs_find('test-command-image-untag-2', focker_type='image') | zfs_find('test-command-image-untag-2', focker_type='image') | ||||
| subprocess.check_output(['focker', 'image', 'remove', 'test-command-image-untag']) | subprocess.check_output(['focker', 'image', 'remove', 'test-command-image-untag']) | ||||
| def test_command_image_list(monkeypatch): | |||||
| focker_unlock() | |||||
| subprocess.check_output(['focker', 'image', 'remove', '--force', '-R', 'test-command-image-list']) | |||||
| subprocess.check_output(['focker', 'bootstrap', '--dry-run', '-t', 'test-command-image-list', 'test-command-image-list-1', 'test-command-image-list-2']) | |||||
| name, sha256 = zfs_find('test-command-image-list', focker_type='image') | |||||
| args = lambda: 0 | |||||
| args.tagged_only = True | |||||
| args.full_sha256 = True | |||||
| lst = None | |||||
| headers = None | |||||
| def fake_tabulate(*args, **kwargs): | |||||
| nonlocal lst | |||||
| nonlocal headers | |||||
| lst = args[0] | |||||
| headers = kwargs['headers'] | |||||
| monkeypatch.setattr(focker.image, 'tabulate', fake_tabulate) | |||||
| command_image_list(args) | |||||
| assert lst is not None | |||||
| assert headers == ['Tags', 'Size', 'SHA256', 'Base'] | |||||
| assert len(lst) >= 3 | |||||
| match = list(filter(lambda a: sorted(a[0].split(' ')) == ['test-command-image-list', 'test-command-image-list-1', 'test-command-image-list-2'], lst)) | |||||
| assert len(match) == 1 | |||||
| match = match[0] | |||||
| assert match[2] == sha256 | |||||
| assert match[3] == '-' | |||||
| subprocess.check_output(['focker', 'image', 'remove', 'test-command-image-list']) | |||||