templates_url: add clan template url test

This commit is contained in:
Johannes Kirschbauer
2025-07-06 12:39:17 +02:00
parent 5845b3f90d
commit 091c567570

View File

@@ -5,7 +5,7 @@ import pytest
from clan_lib.errors import ClanError
from clan_lib.templates.template_url import transform_url
template_type = "machine"
machine_template_type = "machine"
class DummyFlake:
@@ -23,7 +23,18 @@ def test_transform_url_self_explizit_dot() -> None:
user_input = ".#new-machine"
expected_selector = 'clan.templates.machine."new-machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
def test_default_clan_template() -> None:
user_input = ".#default"
expected_selector = 'clan.templates.clan."default"'
flake_ref, selector = transform_url("clan", user_input, flake=local_path)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -32,7 +43,9 @@ def test_transform_url_self_no_dot() -> None:
user_input = "#new-machine"
expected_selector = 'clan.templates.machine."new-machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -41,7 +54,9 @@ def test_transform_url_builtin_template() -> None:
user_input = "new-machine"
expected_selector = 'clanInternals.templates.machine."new-machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -50,7 +65,9 @@ def test_transform_url_remote_template() -> None:
user_input = "github:/org/repo#new-machine"
expected_selector = 'clan.templates.machine."new-machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == "github:/org/repo"
assert selector == expected_selector
@@ -60,7 +77,9 @@ def test_transform_url_explicit_path() -> None:
user_input = ".#clan.templates.machine.new-machine"
expected_selector = "clan.templates.machine.new-machine"
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -69,7 +88,9 @@ def test_transform_url_explicit_path() -> None:
def test_transform_url_quoted_selector() -> None:
user_input = '.#"new.machine"'
expected_selector = '"new.machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -77,7 +98,9 @@ def test_transform_url_quoted_selector() -> None:
def test_single_quote_selector() -> None:
user_input = ".#'new.machine'"
expected_selector = "'new.machine'"
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -86,7 +109,9 @@ def test_custom_template_path() -> None:
user_input = "github:/org/repo#my.templates.custom.machine"
expected_selector = "my.templates.custom.machine"
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == "github:/org/repo"
assert selector == expected_selector
@@ -96,7 +121,9 @@ def test_full_url_query_and_fragment() -> None:
expected_flake_ref = "github:/org/repo?query=param"
expected_selector = "my.templates.custom.machine"
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == expected_flake_ref
assert selector == expected_selector
@@ -114,7 +141,7 @@ def test_malformed_identifier() -> None:
user_input = "github:/org/repo#my.templates.custom.machine#extra"
with pytest.raises(ClanError) as exc_info:
_flake_ref, _selector = transform_url(
template_type, user_input, flake=local_path
machine_template_type, user_input, flake=local_path
)
assert isinstance(exc_info.value, ClanError)
@@ -128,7 +155,9 @@ def test_locked_input_template() -> None:
user_input = "locked-input#new-machine"
expected_selector = 'inputs.locked-input.clan.templates.machine."new-machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert flake_ref == str(local_path.path)
assert selector == expected_selector
@@ -137,7 +166,9 @@ def test_locked_input_template_no_quotes() -> None:
user_input = 'locked-input#"new.machine"'
expected_selector = 'inputs.locked-input."new.machine"'
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert selector == expected_selector
assert flake_ref == str(local_path.path)
@@ -146,6 +177,8 @@ def test_locked_input_template_no_dot() -> None:
user_input = "locked-input#new.machine"
expected_selector = "inputs.locked-input.new.machine"
flake_ref, selector = transform_url(template_type, user_input, flake=local_path)
flake_ref, selector = transform_url(
machine_template_type, user_input, flake=local_path
)
assert selector == expected_selector
assert flake_ref == str(local_path.path)