catopt-graph-graph-calculus.../tests/test_contract_registry.py

25 lines
890 B
Python

from core.contracts import ContractRegistry
def test_contract_registry_basic_operations():
reg = ContractRegistry()
# initially empty
assert reg.list_contracts() == {}
# add a contract and verify retrieval
reg.add_contract("LocalProblem", "v1", {"fields": ["asset_id", "payload"]})
c = reg.get_contract("LocalProblem", "v1")
assert c is not None
assert c.name == "LocalProblem" # type: ignore[attr-defined]
assert c.version == "v1" # type: ignore[attr-defined]
assert c.schema["fields"] == ["asset_id", "payload"] # type: ignore[attr-defined]
# unknown contract should return None
assert reg.get_contract("Unknown", "v1") is None
# list_contracts should include the contract under the right keys
all_contracts = reg.list_contracts()
assert "LocalProblem" in all_contracts
assert "v1" in all_contracts["LocalProblem"]