blob: 52d52a18c0ca238c6289b37e8e34a0e522b90a41 [file] [log] [blame]
import composer
import pytest
def test_parse_action_name():
combos = [
{ "n": "", "s": False, "e": "Name is not specified" },
{ "n": " ", "s": False, "e": "Name is not specified" },
{ "n": "/", "s": False, "e": "Name is not valid" },
{ "n": "//", "s": False, "e": "Name is not valid" },
{ "n": "/a", "s": False, "e": "Name is not valid" },
{ "n": "/a/b/c/d", "s": False, "e": "Name is not valid" },
{ "n": "/a/b/c/d/", "s": False, "e": "Name is not valid" },
{ "n": "a/b/c/d", "s": False, "e": "Name is not valid" },
{ "n": "/a/ /b", "s": False, "e": "Name is not valid" },
{ "n": "a", "e": False, "s": "/_/a" },
{ "n": "a/b", "e": False, "s": "/_/a/b" },
{ "n": "a/b/c", "e": False, "s": "/a/b/c" },
{ "n": "/a/b", "e": False, "s": "/a/b" },
{ "n": "/a/b/c", "e": False, "s": "/a/b/c" }
]
for combo in combos:
if combo["s"] is not False:
# good cases
assert composer.parse_action_name(combo["n"]) == combo["s"]
else:
# error cases
try:
composer.parse_action_name(combo["n"])
assert False
except composer.ComposerError as error:
assert error.message == combo["e"]
def test_main():
composition = composer.sequence("first", "second")
print(composition)
@pytest.mark.literal
class TestLiteral:
def test_boolean(self):
composition = composer.literal(True)
print(composition)
def test_number(self):
composition = composer.literal(42)
print(composition)
def test_invalid_arg(self):
try:
composer.literal(lambda x:x)
assert False
except composer.ComposerError as error:
assert error.message == 'Invalid argument'