info-tech-canon/tests/test_cli.py
tegwick d453e17952
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Canon 0.6.0 freeze: ITC-CAP draft, AVT catalog, joinable review
Finish ITC-WP-0013 (AttributeValueType under ITC-DATA) and ITC-WP-0014
T02/T03/T05/T06/T07. Capability contract schemas, live-catalog review
CLI, landscape/kernel-map pointers. Sit on this version.
2026-08-15 19:42:30 +02:00

63 lines
1.9 KiB
Python

import json
import shutil
from info_tech_canon.cli import main
from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT
def test_cli_inspect_emits_json(capsys) -> None:
exit_code = main(["inspect"])
assert exit_code == 0
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is True
assert payload["infospace"]["artifact_count"] == 68
def test_cli_missing_profile_uses_structured_error(capsys) -> None:
exit_code = main(["profile", "inspect", "missing-profile"])
assert exit_code == 2
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is False
assert payload["error"]["code"] == "missing_profile"
def test_cli_small_saas_profile_validate(capsys) -> None:
exit_code = main(["profile", "validate", "small-saas"])
assert exit_code == 0
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is True
assert payload["details"]["kinds"]["service"] == 1
def test_cli_review_kit_emits_json(capsys) -> None:
exit_code = main(["review-kit"])
assert exit_code == 0
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is True
assert payload["review_kit"]["id"] == "review-kit/alignment"
assert "workflow" in payload["components"]
def test_cli_alignment_template_emits_json(capsys) -> None:
exit_code = main(["alignment-template"])
assert exit_code == 0
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is True
assert "## Current Fit" in payload["content"]
def test_cli_index_generates_views(capsys, tmp_path) -> None:
root = tmp_path / "infospace"
shutil.copytree(DEFAULT_INFOSPACE_ROOT, root)
exit_code = main(["--root", str(root), "index"])
assert exit_code == 0
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is True
assert (root / "views" / "kernel-overview.md").is_file()