Files
info-tech-canon/tests/test_service.py

66 lines
1.8 KiB
Python

from info_tech_canon.service import (
artifact_graph,
generate_agent_briefs,
generate_indexes,
generate_tree,
inspect_canon,
list_models,
list_standards,
validate_canon,
)
from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT
import shutil
def test_inspect_canon_counts_artifact_kinds() -> None:
payload = inspect_canon()
assert payload["ok"] is True
assert payload["infospace"]["slug"] == "canon"
assert payload["infospace"]["artifact_count"] == 15
assert payload["infospace"]["kinds"] == {
"kernel": 2,
"model": 11,
"standard": 2,
}
def test_model_and_standard_lists_are_filtered() -> None:
assert list_models()["count"] == 11
assert list_standards()["count"] == 2
def test_validate_canon_passes_scaffold() -> None:
payload = validate_canon()
assert payload["ok"] is True
assert payload["errors"] == []
assert "warnings" in payload
assert payload["details"]["artifact_count"] == 15
def test_graph_exports_relationship_summary() -> None:
payload = artifact_graph()
assert payload["ok"] is True
assert payload["graph"]["node_count"] == 15
assert payload["graph"]["edge_count"] > 15
def test_generators_write_expected_assets(tmp_path) -> None:
root = tmp_path / "infospace"
shutil.copytree(DEFAULT_INFOSPACE_ROOT, root)
index_payload = generate_indexes(root)
tree_payload = generate_tree(root)
brief_payload = generate_agent_briefs(root)
assert index_payload["ok"] is True
assert tree_payload["ok"] is True
assert brief_payload["ok"] is True
assert (root / "indexes" / "concept-ownership.yaml").is_file()
assert (root / "views" / "by-standard.md").read_text(
encoding="utf-8"
).startswith("<!-- GENERATED")
assert (root / "agent" / "global-agent-brief.md").is_file()