def test_create_template__invalid_symbol(): resolver_obj = resolver.TemplateResolver() with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_template( "name", {"string": "/root/{!str}", "type": "template"} ) assert str(exc_info.value) == "Unknown token symbol: !"
def test_get_token(): int_token = token.IntToken("int") resolver_obj = resolver.TemplateResolver(tokens=[int_token]) assert resolver_obj.token("int") == int_token with pytest.raises(exceptions.ResolverError): resolver_obj.token("missing")
def test_create_template__missing_template(): resolver_obj = resolver.TemplateResolver() with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_template( "name", {"string": "/root/{@template}", "type": "template"} ) assert str(exc_info.value) == "Requested template name does not exist: template"
def test_has_template(): int_token = token.IntToken("int") str_token = token.StringToken("str") template_obj = template.Template("template", [str_token, "_", int_token]) resolver_obj = resolver.TemplateResolver( tokens=[int_token], templates=[template_obj] ) assert resolver_obj.has_template("template") assert not resolver_obj.has_template("missing")
def test_create_template__template_exists(): resolver_obj = resolver.TemplateResolver( templates=[template.Template("name", ["string"])] ) with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_template( "name", {"string": "/root/{str}", "type": "template"} ) assert str(exc_info.value) == "Template 'name' already exists"
def test_create_template( tokens, templates, template_name, template_data, reference_config, expected ): resolver_obj = resolver.TemplateResolver(tokens=tokens, templates=templates) template_obj = resolver_obj.create_template( template_name, template_data, reference_config=reference_config ) assert repr(template_obj) == repr(expected) assert template_name in resolver_obj._templates assert resolver_obj._templates[template_name] == template_obj
def test_get_template(): int_token = token.IntToken("int") str_token = token.StringToken("str") template_obj = template.Template("template", [str_token, "_", int_token]) resolver_obj = resolver.TemplateResolver( tokens=[int_token], templates=[template_obj] ) assert resolver_obj.template("template") == template_obj with pytest.raises(exceptions.ResolverError): resolver_obj.template("missing")
def test_create_token__invalid_config(): resolver_obj = resolver.TemplateResolver() with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_token("int", {"type": "abc"}) assert str(exc_info.value) == "Unknown token type: abc" with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_token("int", {"type": "int", "padmin": 3, "padmax": 2}) assert str(exc_info.value) == "Padmax (2) cannot be lower than padmin (3)" with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_token( "str", {"type": "str", "regex": "[a-z]", "choices": ["a", "b"]} ) assert str(exc_info.value) == "Cannot use construction keywords with explicit regex"
def test_has_token(): int_token = token.IntToken("int") resolver_obj = resolver.TemplateResolver(tokens=[int_token]) assert resolver_obj.has_token("int") assert not resolver_obj.has_token("missing")
def test_create_token__already_exists(): resolver_obj = resolver.TemplateResolver(tokens=[token.IntToken("int")]) with pytest.raises(exceptions.ResolverError) as exc_info: resolver_obj.create_token("int", {"type": "int"}) assert str(exc_info.value) == "Token 'int' already exists"
def test_create_token(name, config, expected): resolver_obj = resolver.TemplateResolver() token_obj = resolver_obj.create_token(name, config) assert repr(token_obj) == repr(expected) assert name in resolver_obj._tokens assert resolver_obj._tokens[name] == token_obj