26 lines
975 B
Python
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"
|