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.
This commit is contained in:
parent
7805560a60
commit
d453e17952
44 changed files with 1485 additions and 137 deletions
|
|
@ -9,10 +9,13 @@ from info_tech_canon.service import (
|
|||
list_standards,
|
||||
profile_graph,
|
||||
profile_validate,
|
||||
review_capability_record,
|
||||
review_kit,
|
||||
validate_canon,
|
||||
)
|
||||
from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT
|
||||
from pathlib import Path
|
||||
import json
|
||||
import shutil
|
||||
|
||||
|
||||
|
|
@ -21,7 +24,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
|
|||
|
||||
assert payload["ok"] is True
|
||||
assert payload["infospace"]["slug"] == "canon"
|
||||
assert payload["infospace"]["artifact_count"] == 66
|
||||
assert payload["infospace"]["artifact_count"] == 68
|
||||
assert payload["infospace"]["kinds"] == {
|
||||
"access-descriptor-set": 1,
|
||||
"alignment-review-kit": 1,
|
||||
|
|
@ -37,7 +40,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
|
|||
"caring-mapping": 1,
|
||||
"comparison-frame": 1,
|
||||
"comparison-report": 1,
|
||||
"concept-catalog": 2,
|
||||
"concept-catalog": 3,
|
||||
"conformance-pack": 1,
|
||||
"consumer-workplan-brief": 3,
|
||||
"consumer-workplan-template": 1,
|
||||
|
|
@ -47,7 +50,7 @@ def test_inspect_canon_counts_artifact_kinds() -> None:
|
|||
"extension-candidate-set": 1,
|
||||
"interface-card-expectation": 1,
|
||||
"kernel": 2,
|
||||
"mapping": 1,
|
||||
"mapping": 2,
|
||||
"mapping-expectation": 1,
|
||||
"model": 12,
|
||||
"model-extension": 1,
|
||||
|
|
@ -93,17 +96,58 @@ def test_validate_canon_passes_scaffold() -> None:
|
|||
assert payload["ok"] is True
|
||||
assert payload["errors"] == []
|
||||
assert "warnings" in payload
|
||||
assert payload["details"]["artifact_count"] == 66
|
||||
assert payload["details"]["artifact_count"] == 68
|
||||
|
||||
|
||||
def test_graph_exports_relationship_summary() -> None:
|
||||
payload = artifact_graph()
|
||||
|
||||
assert payload["ok"] is True
|
||||
assert payload["graph"]["node_count"] == 66
|
||||
assert payload["graph"]["node_count"] == 68
|
||||
assert payload["graph"]["edge_count"] > 15
|
||||
|
||||
|
||||
def test_capability_review_joins_a_minimal_record(tmp_path) -> None:
|
||||
record = {
|
||||
"record_id": "test",
|
||||
"requires": [
|
||||
{
|
||||
"capability": "data.backup",
|
||||
"profile": "database",
|
||||
"minimum_maturity": "D5",
|
||||
}
|
||||
],
|
||||
"provisions": [
|
||||
{
|
||||
"provider": "test.backup",
|
||||
"capability": "data.backup",
|
||||
"profile": "database",
|
||||
"maturity": "D4",
|
||||
"uses_provisions": [
|
||||
{
|
||||
"capability": "data.object",
|
||||
"provider": "test.object",
|
||||
"relation": "depends_on",
|
||||
}
|
||||
],
|
||||
"consumes": [
|
||||
{
|
||||
"class": "H",
|
||||
"quantity": {"value": None, "unit": "hour"},
|
||||
"basis": "unknown",
|
||||
"gap": "not recorded (owner: test)",
|
||||
}
|
||||
],
|
||||
}
|
||||
],
|
||||
}
|
||||
path = tmp_path / "case.json"
|
||||
path.write_text(json.dumps(record))
|
||||
payload = review_capability_record(path)
|
||||
assert payload["ok"] is True
|
||||
assert payload["requirements"][0]["status"] == "below_requirement"
|
||||
|
||||
|
||||
def test_small_saas_profile_validates() -> None:
|
||||
payload = profile_validate("small-saas")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue