Beispiel #1
0
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: !"
Beispiel #2
0
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")
Beispiel #3
0
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"
Beispiel #4
0
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")
Beispiel #5
0
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"
Beispiel #6
0
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
Beispiel #7
0
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")
Beispiel #8
0
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"
Beispiel #9
0
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")
Beispiel #10
0
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"
Beispiel #11
0
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