pkgs/clan: Add flake validation to clan show

This commit is contained in:
a-kenji
2025-07-15 12:04:23 +02:00
parent d4cb206e3e
commit 2ddba36b17
2 changed files with 21 additions and 2 deletions

View File

@@ -2,13 +2,13 @@ import argparse
import logging
from clan_lib.clan.get import get_clan_details
from clan_lib.flake import Flake
from clan_lib.flake import require_flake
log = logging.getLogger(__name__)
def show_command(args: argparse.Namespace) -> None:
flake: Flake = args.flake
flake = require_flake(args.flake)
meta = get_clan_details(flake)
print(f"Name: {meta.get('name')}")

View File

@@ -1,4 +1,7 @@
from pathlib import Path
import pytest
from clan_lib.errors import ClanError
from clan_cli.tests.fixtures_flakes import FlakeForTest
from clan_cli.tests.helpers import cli
@@ -14,3 +17,19 @@ def test_clan_show(
assert "Name:" in output.out
assert "Name: test_flake_with_core" in output.out
assert "Description:" in output.out
def test_clan_show_no_flake(
tmp_path: Path, monkeypatch: pytest.MonkeyPatch, capture_output: CaptureOutput
) -> None:
monkeypatch.chdir(tmp_path)
with pytest.raises(ClanError) as exc_info:
cli.run(["show"])
assert "No clan flake found in the current directory or its parents" in str(
exc_info.value
)
assert "Use the --flake flag to specify a clan flake path or URL" in str(
exc_info.value
)