Admin Panel
import pytest
from amitools.vamos.path import Spec
def path_spec_parse_name_only_test():
# invalid is empty spec
with pytest.raises(ValueError):
Spec.parse("")
# name only
s = Spec.parse("foo")
assert s.get_name() == "foo"
assert s.get_src_list() == []
assert not s.get_append()
# name only 2
s = Spec.parse("foo:")
assert s.get_name() == "foo"
assert s.get_src_list() == []
assert not s.get_append()
def path_spec_parse_src_test():
# name + src
s = Spec.parse("foo:bar")
assert s.get_name() == "foo"
assert s.get_src_list() == ["bar"]
assert not s.get_append()
# name + src
s = Spec.parse("foo:bar+baz")
assert s.get_name() == "foo"
assert s.get_src_list() == ["bar", "baz"]
assert not s.get_append()
# name + only is invalid
with pytest.raises(ValueError):
Spec.parse("foo:+")
# name + append list
s = Spec.parse("foo:+bar+baz")
assert s.get_name() == "foo"
assert s.get_src_list() == ["bar", "baz"]
assert s.get_append()
def path_spec_parse_cfg_test():
# invalid only cfg
with pytest.raises(ValueError):
Spec.parse("?key=val")
# no cfg
with pytest.raises(ValueError):
Spec.parse("foo?")
# ok
s = Spec.parse("foo?key=val")
assert s.get_name() == "foo"
assert s.get_cfg() == {'key': 'val'}
assert s.get_src_list() == []
assert not s.get_append()
# ok
s = Spec.parse("foo?key=val,key2=True,key3=False")
assert s.get_name() == "foo"
assert s.get_cfg() == {'key': 'val', 'key2': True, 'key3': False}
assert s.get_src_list() == []
assert not s.get_append()
# ok: 'key' is short for key=True
s = Spec.parse("foo?key")
assert s.get_name() == "foo"
assert s.get_cfg() == {'key': True}
assert s.get_src_list() == []
assert not s.get_append()