idea182-implementation/tests/test_registry_ledger.py

26 lines
975 B
Python

from gravityweave.registry import Registry
from gravityweave.ledger import GovernanceLedger
def test_registry_contract_and_adapter():
reg = Registry()
schema = {"type": "object", "properties": {"node_id": {"type": "string"}}}
cid = reg.register_contract("LocalProblem", schema, version="0.1")
assert cid.startswith("LocalProblem:")
retrieved = reg.get_contract(cid)
assert retrieved["schema"]["type"] == "object"
aid = reg.register_adapter("sat_planner", cid, {"desc": "toy"})
adapters = reg.list_adapters()
assert any(a["name"] == "sat_planner" for a in adapters)
def test_governance_ledger_append_and_verify():
key = b"node-secret"
ledger = GovernanceLedger(key)
e1 = ledger.append("node1", {"action": "register", "contract": "c1"})
e2 = ledger.append("node1", {"action": "update", "contract": "c1"})
assert ledger.verify_chain() is True
entries = ledger.entries()
assert entries[0]["author"] == "node1"