From 74d2ae0619cb765a479ed0944417d8557fb197d0 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Sun, 6 Jul 2025 12:39:17 +0200 Subject: [PATCH] templates_url: add clan template url test --- .../clan_lib/templates/template_url_test.py | 61 ++++++++++++++----- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/pkgs/clan-cli/clan_lib/templates/template_url_test.py b/pkgs/clan-cli/clan_lib/templates/template_url_test.py index 3193f0447..de8a7e7b9 100644 --- a/pkgs/clan-cli/clan_lib/templates/template_url_test.py +++ b/pkgs/clan-cli/clan_lib/templates/template_url_test.py @@ -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)