idea150-medimesh-federated-.../tests/test_contracts.py

15 lines
779 B
Python

from medimesh.contracts import AdapterContractBinding, ContractRegistry, DataContract, GovernancePolicy
def test_contract_registry_conformance_and_lineage() -> None:
registry = ContractRegistry()
contract = DataContract("inventory_snapshot", "1.0", ("site_id", "on_hand"), ("forecast_demand",))
policy = GovernancePolicy("humanitarian", "1.0")
registry.register_contract(contract)
registry.register_policy(policy)
registry.register_adapter(AdapterContractBinding("adapter", (contract.node_id,), (), (policy.node_id,)))
assert registry.conformance_check(contract.node_id, {"site_id": "a", "on_hand": 10, "forecast_demand": 8}) == []
assert contract.node_id in registry.lineage("adapter")
assert policy.node_id in registry.lineage("adapter")