def test_jailspec_to_jailconf_06(): with pytest.raises(ValueError) as excinfo: _ = jailspec_to_jailconf({}, 'noname') assert excinfo.value.args == ('Missing path specification for the jail',) with pytest.raises(ValueError) as excinfo: _ = jailspec_to_jailconf({'image': 'zoo'}, 'noname') assert excinfo.value.args == ('Missing path specification for the jail',) _ = jailspec_to_jailconf({'path': '/foo/bar'}, 'noname') _ = jailspec_to_jailconf({'image': 'zoo', 'path': '/foo/bar'}, 'noname')
def test_jailspec_to_jailconf_03(): spec = dict(_spec) del spec['command'] del spec['exec.system_jail_user'] #with pytest.raises(KeyError) as excinfo: blk = jailspec_to_jailconf(spec, 'noname') # assert excinfo.value.args == ('exec.jail_user and exec.system_jail_user are mutually exclusive',) for k, v in spec.items(): if k == 'exec.prestart' or k == 'exec.poststop' or k == 'depend': continue assert blk[k] == quote(v) assert blk['exec.prestart'] == "'cp /etc/resolv.conf /no/path/etc/resolv.conf && echo Prestart'" assert blk['exec.poststop'] == "'echo Poststop'"
def test_jailspec_to_jailconf_07(): spec = { 'path': '/no/path', 'mounts': { '/foo/bar': '/bar/baf', '/bar/baz': '/baz/bee' } } conf = jailspec_to_jailconf(spec, 'noname') assert conf['exec.prestart'] == quote('cp /etc/resolv.conf /no/path/etc/resolv.conf && mount -t nullfs /foo/bar /no/path/bar/baf && mount -t nullfs /bar/baz /no/path/baz/bee') assert conf['exec.poststop'] == quote('umount -f /no/path/baz/bee && umount -f /no/path/bar/baf')
def test_jailspec_to_jailconf_05(): spec = { 'path': '/no/path', 'env': { 'FOO': 'bar', 'BAR': 'baz' }, 'exec.prestart': 'echo Prestart', 'exec.start': 'echo Start', 'exec.poststart': 'echo Poststart', 'exec.prestop': 'echo Prestop', 'exec.stop': 'echo Stop', 'exec.poststop': 'echo Poststop' } blk = jailspec_to_jailconf(spec, 'noname') assert blk['exec.prestart'] == "'cp /etc/resolv.conf /no/path/etc/resolv.conf && export FOO=bar && export BAR=baz && echo Prestart'" assert blk['exec.start'] == "'export FOO=bar && export BAR=baz && echo Start'" assert blk['exec.poststart'] == "'export FOO=bar && export BAR=baz && echo Poststart'" assert blk['exec.prestop'] == "'export FOO=bar && export BAR=baz && echo Prestop'" assert blk['exec.stop'] == "'export FOO=bar && export BAR=baz && echo Stop'" assert blk['exec.poststop'] == "'export FOO=bar && export BAR=baz && echo Poststop'" spec = { 'path': '/no/path', 'env': { 'FOO': 'bar', 'BAR': 'baz' }, 'command': 'echo Command' } blk = jailspec_to_jailconf(spec, 'noname') assert blk['command'] == "'export FOO=bar && export BAR=baz && echo Command'"
def test_jailspec_to_jailconf_02(): spec = dict(_spec) del spec['command'] with pytest.raises(KeyError) as excinfo: blk = jailspec_to_jailconf(spec, 'noname') assert excinfo.value.args == ('exec.jail_user and exec.system_jail_user are mutually exclusive',)
def test_jailspec_to_jailconf_01(): with pytest.raises(KeyError) as excinfo: blk = jailspec_to_jailconf(_spec, 'noname') assert excinfo.value.args == ('exec.start and command are mutually exclusive',)
def test_jailspec_to_jailconf_04(): spec = dict(_spec2) blk = jailspec_to_jailconf(spec, 'noname') for k, v in spec.items(): assert blk[k] == quote(v)