audit-core/tests/test_capability_case.py
tegwick ded432a63f
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Implement AUDIT-WP-0006 honest operational custody.
Postgres now reports custody_class=operational with a cited 30-day
recoverable window. Join ITC-CAP operations.audit at D4, publish the
interface card, and overlay user-engine tenants [*] from Git so an
ExternalSecret refresh cannot shrink it.
2026-08-16 00:24:33 +02:00

65 lines
2.6 KiB
Python

import json
from pathlib import Path
import pytest
ROOT = Path(__file__).resolve().parents[1]
RECORD = ROOT / "data" / "capability" / "audit-core-operational.json"
CARD = ROOT / "docs" / "interface-card.yaml"
SCHEMA = Path.home() / "info-tech-canon" / "infospace" / "schemas" / "interface-card.schema.yaml"
def test_capability_record_exists_and_joins_operations_audit():
record = json.loads(RECORD.read_text())
assert any(item["capability"] == "operations.audit" for item in record["requires"])
assert any(item["capability"] == "data.archive" for item in record["requires"])
provisions = {item["capability"]: item for item in record["provisions"]}
assert "data.archive" not in provisions
audit = provisions["operations.audit"]
assert audit["maturity"] == "D4"
assert audit["provider"] == "audit-core.railiance01"
used = {item["capability"]: item["relation"] for item in audit["uses_provisions"]}
assert used["data.backup"] == "may_use"
assert used["security.secrets"] == "may_use"
unknown = [row for row in audit["consumes"] if row["basis"] == "unknown"]
assert unknown
assert all(row["quantity"]["value"] is None and row.get("gap") for row in unknown)
def test_capability_review_against_live_catalog():
import sys
canon_src = Path.home() / "info-tech-canon" / "src"
if canon_src.is_dir() and str(canon_src) not in sys.path:
sys.path.insert(0, str(canon_src))
try:
from info_tech_canon.capability import review_path
except ImportError:
pytest.skip("info-tech-canon is not importable")
result = review_path(RECORD)
assert result["ok"] is True
by_cap = {item["capability"]: item for item in result["requirements"]}
assert by_cap["operations.audit"]["status"] == "met"
assert by_cap["data.archive"]["status"] == "unprovided"
def test_interface_card_has_required_fields():
text = CARD.read_text()
assert "id: audit-core/interface-card" in text
assert "title:" in text
assert "consumer:" in text
assert "canon_surfaces:" in text
assert "Evidence" in text
assert "AuditRecord" in text
assert "data.archive-unprovided" in text
assert "no-rapp-yaml" in text
def test_interface_card_validates_against_canon_schema():
if not SCHEMA.is_file():
pytest.skip("info-tech-canon interface-card schema not on disk")
yaml = pytest.importorskip("yaml")
jsonschema = pytest.importorskip("jsonschema")
schema = yaml.safe_load(SCHEMA.read_text())
card = yaml.safe_load(CARD.read_text())
jsonschema.Draft202012Validator(schema).validate(card)