generated from coulomb/repo-seed
feat: define accountability root manifest
This commit is contained in:
64
tests/test_accountability_roots.py
Normal file
64
tests/test_accountability_roots.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from pathlib import Path
|
||||
|
||||
from railiance_fabric.financial_baseline import load_financial_baseline
|
||||
from railiance_fabric.loader import load_yaml
|
||||
from railiance_fabric.schema_validation import draft202012_validator
|
||||
|
||||
|
||||
MANIFEST_PATH = Path("fabric/discovery/railiance-accountability-roots.yaml")
|
||||
EXAMPLE_PATH = Path("examples/discovery/accountability-root-manifest.yaml")
|
||||
SCHEMA_PATH = Path("schemas/accountability-root-manifest.schema.yaml")
|
||||
|
||||
|
||||
def test_accountability_root_manifests_match_schema() -> None:
|
||||
validator = draft202012_validator(SCHEMA_PATH)
|
||||
|
||||
for path in (MANIFEST_PATH, EXAMPLE_PATH):
|
||||
manifest = load_yaml(path)
|
||||
assert list(validator.iter_errors(manifest)) == []
|
||||
|
||||
|
||||
def test_railiance_manifest_matches_financial_baseline() -> None:
|
||||
manifest = load_yaml(MANIFEST_PATH)
|
||||
baseline = load_financial_baseline()
|
||||
|
||||
assert manifest["netkingdom"]["id"] == baseline["netkingdom"]["id"]
|
||||
assert manifest["netkingdom"]["king_actor_id"] == baseline["netkingdom"]["king_actor_id"]
|
||||
|
||||
baseline_actor_ids = {actor["id"] for actor in baseline["actors"]}
|
||||
manifest_actor_ids = {actor["id"] for actor in manifest["actors"]}
|
||||
assert baseline_actor_ids <= manifest_actor_ids
|
||||
|
||||
primary_fabric = next(fabric for fabric in manifest["fabrics"] if fabric["id"] == "fabric.railiance.primary")
|
||||
assert primary_fabric["kind"] == "Fabric"
|
||||
assert primary_fabric["status"] == "active"
|
||||
assert primary_fabric["boundary"]["criterion"] == "financial_and_operational_accountability"
|
||||
|
||||
|
||||
def test_railiance_manifest_covers_required_root_kinds() -> None:
|
||||
manifest = load_yaml(MANIFEST_PATH)
|
||||
root_types = {root["type"] for root in manifest["discovery_roots"]}
|
||||
|
||||
assert {
|
||||
"state_hub_repo_inventory",
|
||||
"gitea_organization",
|
||||
"registry_manifest",
|
||||
"host_path",
|
||||
"repository_checkout",
|
||||
"deployment_automation",
|
||||
"backup_recovery",
|
||||
"secret_root",
|
||||
} <= root_types
|
||||
|
||||
assert all(root["fabric_id"] == "fabric.railiance.primary" for root in manifest["discovery_roots"])
|
||||
assert all(root["source"]["safe_discovery"] for root in manifest["discovery_roots"])
|
||||
|
||||
|
||||
def test_example_manifest_can_add_tenant_subfabric() -> None:
|
||||
manifest = load_yaml(EXAMPLE_PATH)
|
||||
subfabrics = [fabric for fabric in manifest["fabrics"] if fabric["kind"] == "Subfabric"]
|
||||
|
||||
assert len(subfabrics) == 1
|
||||
assert subfabrics[0]["parent_fabric_id"] == "fabric.example.primary"
|
||||
assert subfabrics[0]["tenant_actor_id"] == "actor.example.tenant"
|
||||
assert any(root.get("subfabric_id") == "subfabric.example.tenant" for root in manifest["discovery_roots"])
|
||||
Reference in New Issue
Block a user