feat: version state hub fabric export contract

This commit is contained in:
2026-05-24 01:06:49 +02:00
parent be0299e528
commit 63379ca329
5 changed files with 898 additions and 126 deletions

View File

@@ -8,6 +8,7 @@ from pathlib import Path
from railiance_fabric.cli import main as cli_main
from railiance_fabric.graph import build_graph
from railiance_fabric.financial import materialize_financial_graph_export
from railiance_fabric.registry import (
RESET_CONFIRMATION_TOKEN,
RegistryError,
@@ -21,6 +22,7 @@ from railiance_fabric.registry import (
validate_graph_export,
xregistry_projection,
)
from railiance_fabric.schema_validation import draft202012_validator
from railiance_fabric.server import RegistryHandler
@@ -261,6 +263,20 @@ def test_graph_export_validation_rejects_unflagged_display_edges() -> None:
raise AssertionError("expected RegistryError for unflagged display-only edge")
def test_state_hub_export_schema_accepts_legacy_and_financial_shapes() -> None:
validator = draft202012_validator(Path("schemas/state-hub-export.schema.yaml"))
legacy_graph = {
"apiVersion": "railiance.fabric/v1alpha1",
"kind": "FabricGraphExport",
"nodes": [],
"edges": [],
}
financial_graph = materialize_financial_graph_export(_financial_graph())
assert list(validator.iter_errors(legacy_graph)) == []
assert list(validator.iter_errors(financial_graph)) == []
def test_financial_graph_export_requires_resolvable_owner() -> None:
graph = _financial_graph()
del graph["nodes"][0]["ownership"]