Add validation indexes and generated views

This commit is contained in:
2026-05-23 03:32:16 +02:00
parent dc44208c9f
commit c112bf5c74
37 changed files with 2007 additions and 8 deletions

View File

@@ -1,6 +1,8 @@
from http import HTTPStatus
import shutil
from info_tech_canon.api import _route
from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT, generate_indexes
def test_api_route_inspect() -> None:
@@ -24,3 +26,16 @@ def test_api_route_unknown_endpoint() -> None:
assert status == HTTPStatus.NOT_FOUND
assert payload["ok"] is False
assert payload["error"]["code"] == "not_found"
def test_api_route_reads_generated_view(tmp_path) -> None:
root = tmp_path / "infospace"
shutil.copytree(DEFAULT_INFOSPACE_ROOT, root)
generate_indexes(root)
status, payload = _route("/views/by-standard.md", {}, root)
assert status == HTTPStatus.OK
assert payload["ok"] is True
assert payload["generated"] is True
assert "# By Standard" in payload["content"]

View File

@@ -1,6 +1,8 @@
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:
@@ -19,3 +21,15 @@ def test_cli_missing_profile_uses_structured_error(capsys) -> None:
payload = json.loads(capsys.readouterr().out)
assert payload["ok"] is False
assert payload["error"]["code"] == "missing_profile"
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()

View File

@@ -1,10 +1,15 @@
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:
@@ -30,6 +35,7 @@ def test_validate_canon_passes_scaffold() -> None:
assert payload["ok"] is True
assert payload["errors"] == []
assert "warnings" in payload
assert payload["details"]["artifact_count"] == 15
@@ -39,3 +45,21 @@ def test_graph_exports_relationship_summary() -> None:
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()