25 lines
890 B
Python
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"]
|