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"