From 86ac1c4405258b78a71f16164409a5dd8c3ad386 Mon Sep 17 00:00:00 2001 From: a-kenji Date: Tue, 29 Jul 2025 10:14:34 +0200 Subject: [PATCH] pkgs/cli: Validate clan flake for `clan machines list` --- pkgs/clan-cli/clan_cli/machines/list.py | 4 ++-- pkgs/clan-cli/clan_cli/machines/list_test.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/clan-cli/clan_cli/machines/list.py b/pkgs/clan-cli/clan_cli/machines/list.py index 0af560814..e1153fb19 100644 --- a/pkgs/clan-cli/clan_cli/machines/list.py +++ b/pkgs/clan-cli/clan_cli/machines/list.py @@ -1,7 +1,7 @@ import argparse import logging -from clan_lib.flake import Flake +from clan_lib.flake import require_flake from clan_lib.machines.actions import list_machines from clan_cli.completions import add_dynamic_completer, complete_tags @@ -10,7 +10,7 @@ log = logging.getLogger(__name__) def list_command(args: argparse.Namespace) -> None: - flake: Flake = args.flake + flake = require_flake(args.flake) for name in list_machines(flake, opts={"filter": {"tags": args.tags}}): print(name) diff --git a/pkgs/clan-cli/clan_cli/machines/list_test.py b/pkgs/clan-cli/clan_cli/machines/list_test.py index e19110cf7..f203f940a 100644 --- a/pkgs/clan-cli/clan_cli/machines/list_test.py +++ b/pkgs/clan-cli/clan_cli/machines/list_test.py @@ -1,4 +1,5 @@ import pytest +from clan_lib.errors import ClanError from clan_cli.tests import fixtures_flakes from clan_cli.tests.helpers import cli @@ -359,3 +360,12 @@ def list_mixed_tagged_untagged( assert "machine-with-tags" not in output.out assert "machine-without-tags" not in output.out assert output.out.strip() == "" + + +def test_machines_list_require_flake_error() -> None: + """Test that machines list command fails when flake is required but not provided.""" + with pytest.raises(ClanError) as exc_info: + cli.run(["machines", "list"]) + + error_message = str(exc_info.value) + assert "flake" in error_message.lower()