Admin Panel
import pytest
from amitools.vamos.path import *
def lp_with_resolver(path):
def path_resolver(path):
if path == "foo:":
return AmiPath("bar:")
elif path == "bar:":
raise AmiPathError(path, "not wanted!")
else:
return path
return LazyPath(path=path, path_resolver=path_resolver)
def path_lazypath_default_test():
lp = LazyPath("")
assert lp.get() == ""
assert str(lp) == "(!)"
assert not lp.is_resolved()
assert lp.get_resolved() == ""
assert lp.is_resolved()
assert str(lp) == ""
lp = LazyPath(AmiPath("foo:"))
assert lp.get() == AmiPath("foo:")
assert lp.get_resolved() == AmiPath("foo:")
assert str(lp) == "foo:"
assert repr(lp) == "LazyPath(path=foo:, resolved_path=foo:)"
def path_lazypath_eq_test():
lp = LazyPath("bla:")
assert lp == lp
lp2 = LazyPath("")
assert lp != lp2
lp3 = LazyPath("")
assert lp3 == lp2
lp3.resolve()
assert lp3 != lp2
def path_lazypath_resolver_test():
lp = lp_with_resolver("")
assert lp.get() == ""
assert lp.get_resolved() == ""
lp = lp_with_resolver(AmiPath("foo:"))
assert lp.get() == AmiPath("foo:")
# resolver transforms
assert lp.get_resolved() == AmiPath("bar:")
lp = lp_with_resolver(AmiPath("bar:"))
assert lp.get() == AmiPath("bar:")
# resolver raises AmiPathError
with pytest.raises(AmiPathError):
lp.get_resolved()
def path_lazypath_set_test():
lp = LazyPath("")
assert lp.get() == ""
assert lp.get_resolved() == ""
lp.set("foo:")
assert not lp.is_resolved()
assert lp.get() == "foo:"
assert lp.get_resolved() == "foo:"
def path_lazypath_set_resolver_test():
lp = lp_with_resolver("")
assert lp.get() == ""
assert lp.get_resolved() == ""
lp.set("foo:")
assert not lp.is_resolved()
assert lp.get() == "foo:"
assert lp.get_resolved() == "bar:"
def path_lazypath_list_test():
lpl = LazyPathList()
assert lpl.get() == []
assert lpl.get_resolved() == []
lpl = LazyPathList(["foo:"])
assert lpl.get() == ["foo:(!)"]
assert not lpl.is_resolved()
assert lpl.get_resolved() == ["foo:"]
assert lpl.is_resolved()
def path_lazypath_list_eq_test():
lpl = LazyPathList()
assert lpl == lpl
lpl2 = LazyPathList()
assert lpl == lpl2
lpl3 = LazyPathList(["foo:"])
assert lpl != lpl3
def path_lazypath_list_set_test():
lpl = LazyPathList()
assert lpl.get() == []
assert lpl.get_resolved() == []
lpl.set(["foo:"])
assert lpl.get() == ["foo:(!)"]
assert not lpl.is_resolved()
assert lpl.get_resolved() == ["foo:"]
assert lpl.is_resolved()
# append
lpl.append("bar:")
assert lpl.get() == ["foo:", "bar:(!)"]
assert not lpl.is_resolved()
assert lpl.get_resolved() == ["foo:", "bar:"]
assert lpl.is_resolved()
# prepend
lpl.prepend("baz:")
assert lpl.get() == ["baz:(!)", "foo:", "bar:"]
assert not lpl.is_resolved()
assert lpl.get_resolved() == ["baz:", "foo:", "bar:"]
assert lpl.is_resolved()
def path_lazypath_list_resolver_test():
lp = lp_with_resolver("bla:")
resolver = lp.get_path_resolver()
lpl = LazyPathList(path_resolver=resolver)
assert lpl.get() == []
assert lpl.get_resolved() == []
lpl.set(["foo:"])
assert lpl.get() == ["foo:(!)"]
assert not lpl.is_resolved()
assert lpl.get_resolved() == ["bar:"]
assert lpl.is_resolved()
# append
lpl.append("bar:")
assert lpl.get() == ["bar:", "bar:(!)"]
assert not lpl.is_resolved()
with pytest.raises(AmiPathError):
lpl.get_resolved()
assert not lpl.is_resolved()
lpl.remove("bar:(!)")
# prepend
lpl.prepend("baz:")
assert lpl.get() == ["baz:(!)", "bar:"]
assert not lpl.is_resolved()
assert lpl.get_resolved() == ["baz:", "bar:"]
assert lpl.is_resolved()
assert str(lpl) == "[baz:,bar:]"
assert repr(
lpl) == "LazyPathList(paths=[LazyPath(path=baz:, resolved_path=baz:), LazyPath(path=foo:, resolved_path=bar:)])"