|
|
@@ -0,0 +1,107 @@ |
|
|
|
from focker.focker import *
|
|
|
|
|
|
|
|
|
|
|
|
def test_parser_bootstrap():
|
|
|
|
parser = create_parser()
|
|
|
|
|
|
|
|
args = parser.parse_args(['bootstrap', '--dry-run', '--tags', 'a', 'b', 'c'])
|
|
|
|
assert args.func == command_bootstrap
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
assert args.dry_run
|
|
|
|
|
|
|
|
|
|
|
|
def test_parser_image():
|
|
|
|
parser = create_parser()
|
|
|
|
|
|
|
|
args = parser.parse_args(['image', 'build', '.', '--squeeze', '--tags', 'a', 'b', 'c'])
|
|
|
|
assert args.func == command_image_build
|
|
|
|
assert args.focker_dir == '.'
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
assert args.squeeze
|
|
|
|
|
|
|
|
args = parser.parse_args(['image', 'tag', 'deadbee', 'a', 'b', 'c'])
|
|
|
|
assert args.func == command_image_tag
|
|
|
|
assert args.reference == 'deadbee'
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
|
|
|
|
args = parser.parse_args(['image', 'untag', 'a', 'b', 'c'])
|
|
|
|
assert args.func == command_image_untag
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
|
|
|
|
args = parser.parse_args(['image', 'list', '--full-sha256', '--tagged-only'])
|
|
|
|
assert args.func == command_image_list
|
|
|
|
assert args.full_sha256
|
|
|
|
assert args.tagged_only
|
|
|
|
|
|
|
|
args = parser.parse_args(['image', 'prune'])
|
|
|
|
assert args.func == command_image_prune
|
|
|
|
|
|
|
|
args = parser.parse_args(['image', 'remove', 'a', '--remove-dependents', '--force'])
|
|
|
|
assert args.func == command_image_remove
|
|
|
|
assert args.reference == 'a'
|
|
|
|
assert args.remove_dependents
|
|
|
|
assert args.force
|
|
|
|
|
|
|
|
|
|
|
|
def test_parser_jail(monkeypatch):
|
|
|
|
parser = create_parser()
|
|
|
|
|
|
|
|
counter = [0]
|
|
|
|
def count_calls(fun, counter):
|
|
|
|
def inner(*args, **kwargs):
|
|
|
|
counter[0] += 1
|
|
|
|
return fun(*args, **kwargs)
|
|
|
|
return inner
|
|
|
|
monkeypatch.setattr(parser, 'parse_args', count_calls(parser.parse_args, counter))
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'create', 'freebsd-latest', '--command', '/test-command', '--tags', 'a', 'b', 'c', '--env', 'd:1', 'e:2', '--mounts', 'mount-A:/a', 'mount-B:/b', '--hostname', 'xyz'])
|
|
|
|
assert args.func == command_jail_create
|
|
|
|
assert args.command == '/test-command'
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
assert args.env == ['d:1', 'e:2']
|
|
|
|
assert args.mounts == ['mount-A:/a', 'mount-B:/b']
|
|
|
|
assert args.hostname == 'xyz'
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'start', 'jail-A'])
|
|
|
|
assert args.func == command_jail_start
|
|
|
|
assert args.reference == 'jail-A'
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'stop', 'jail-A'])
|
|
|
|
assert args.func == command_jail_stop
|
|
|
|
assert args.reference == 'jail-A'
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'remove', 'jail-A', '--force'])
|
|
|
|
assert args.func == command_jail_remove
|
|
|
|
assert args.reference == 'jail-A'
|
|
|
|
assert args.force
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'exec', 'jail-A', '/bin/sh', '-c', 'ls', '-al'])
|
|
|
|
assert args.func == command_jail_exec
|
|
|
|
assert args.reference == 'jail-A'
|
|
|
|
assert args.command == ['/bin/sh', '-c', 'ls', '-al']
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'oneshot', '--env', 'd:1', 'e:2', '--mounts', 'mount-A:/a', 'mount-B:/b', '--', 'image-A', '/bin/sh', '-c', 'ls', '-al'])
|
|
|
|
assert args.func == command_jail_oneshot
|
|
|
|
assert args.image == 'image-A'
|
|
|
|
assert args.env == ['d:1', 'e:2']
|
|
|
|
assert args.mounts == ['mount-A:/a', 'mount-B:/b']
|
|
|
|
assert args.command == ['/bin/sh', '-c', 'ls', '-al']
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'list', '--full-sha256'])
|
|
|
|
assert args.func == command_jail_list
|
|
|
|
assert args.full_sha256
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'tag', 'deadbee', 'a', 'b', 'c'])
|
|
|
|
assert args.func == command_jail_tag
|
|
|
|
assert args.reference == 'deadbee'
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'untag', 'a', 'b', 'c'])
|
|
|
|
assert args.func == command_jail_untag
|
|
|
|
assert args.tags == ['a', 'b', 'c']
|
|
|
|
|
|
|
|
args = parser.parse_args(['jail', 'prune', '--force'])
|
|
|
|
assert args.func == command_jail_prune
|
|
|
|
assert args.force
|
|
|
|
|
|
|
|
assert counter[0] == 10
|