import json from mltrail_verifiable_provenance_ledger_for.ledger import Ledger def test_contract_registry_entry_can_be_stored(): ledger = Ledger() payload = { "registry_name": "GoC-Bridge-Registry", "primitives": [ "Experiment", "Run", "Dataset", "Model", "Environment", "EvaluationMetric", "Policy", ], "version": "1.0", } block = ledger.add_record("ContractRegistryEntry", payload) # Basic sanity checks about the added block and its data assert block.index == 1 assert block.data[0]["type"] == "ContractRegistryEntry" # Ensure the payload is preserved inside the contract record stored = block.data[0] assert stored["registry_name"] == payload["registry_name"] assert stored["primitives"] == payload["primitives"] def test_delta_sync_basic(): ledger_a = Ledger() ledger_b = Ledger() # Add a single registry entry in ledger_a ledger_a.add_record("ContractRegistryEntry", {"registry_name": "GoC", "version": "1.0"}) # Use ledger_b's head hash as remote head to fetch delta from ledger_a delta = __import__("mltrail_verifiable_provenance_ledger_for.ledger", fromlist=["delta_sync"]).delta_sync(ledger_a, ledger_b.head_hash()) # Should contain the single block from ledger_a (excluding genesis) assert isinstance(delta, list) assert len(delta) == 1 assert delta[0]["index"] == 1