Admin Panel
import pytest
from amitools.vamos.path import *
from amitools.vamos.cfgcore import ConfigDict
def path_env_default_test():
pe = AmiPathEnv()
assert pe.get_cwd() == "sys:"
assert pe.get_cmd_paths() == ["c:"]
assert repr(pe) == "AmiPathEnv(cwd=sys:, cmd_paths=[c:])"
assert str(pe) == "[cwd=sys:, cmd_paths=[c:]]"
def path_env_eq_ne_test():
pe = AmiPathEnv()
assert pe.get_cwd() == "sys:"
assert pe.get_cmd_paths() == ["c:"]
pe2 = AmiPathEnv(cwd="sys:", cmd_paths=["c:"])
assert pe == pe2
pe3 = AmiPathEnv(cwd="bla:")
assert pe != pe3
pe4 = AmiPathEnv(cmd_paths=["b:"])
assert pe != pe4
def path_env_parse_config_test():
pe = AmiPathEnv()
cfg = ConfigDict({
"path": ConfigDict({
"command": ["c:", "sc:c"],
"cwd": "foo:bar"
})
})
assert pe.parse_config(cfg)
assert pe.get_cwd() == "foo:bar"
assert pe.get_cmd_paths() == ["c:", "sc:c"]
def path_env_get_set_cwd_test():
pe = AmiPathEnv()
assert not pe.is_cwd_resolved()
assert pe.get_cwd() == "sys:"
assert pe.is_cwd_resolved()
# set valid path
pe.set_cwd("foo:")
assert pe.get_cwd() == "foo:"
# set invalid path
pe.set_cwd(":bla")
with pytest.raises(AmiPathError):
pe.get_cwd()
# another invalid
pe.set_cwd("bla/baz")
with pytest.raises(AmiPathError):
pe.get_cwd()
def path_env_get_set_cmd_paths_test():
pe = AmiPathEnv()
assert not pe.are_cmd_paths_resolved()
assert pe.get_cmd_paths() == ["c:"]
assert pe.are_cmd_paths_resolved()
pe.set_cmd_paths(["a:", "b:", "c:"])
assert pe.get_cmd_paths() == ["a:", "b:", "c:"]
# invalid path
pe.set_cmd_paths(["a:", "b", ":c"])
with pytest.raises(AmiPathError):
pe.get_cmd_paths()
def path_env_add_del_cmd_path_test():
pe = AmiPathEnv()
assert pe.get_cmd_paths() == ["c:"]
# append
pe.append_cmd_path("d:")
assert pe.get_cmd_paths() == ["c:", "d:"]
pe.prepend_cmd_path("b:")
assert pe.get_cmd_paths() == ["b:", "c:", "d:"]
# del
pe.remove_cmd_path("c:")
assert pe.get_cmd_paths() == ["b:", "d:"]
with pytest.raises(ValueError):
pe.remove_cmd_path("z:")