cosmicledger-verifiable-off.../tests/test_adapter.py

37 lines
1.1 KiB
Python

import sys
import pathlib
# Ensure repository root is on sys.path so tests can import the package
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1]))
from cosmic_ledger.delta import DeltaLog
from cosmic_ledger.adapter import DeltaBlock, verify_block, verify_entry_inclusion
def test_deltablock_create_and_verify():
dl = DeltaLog()
# add a few simple entries
for i in range(5):
dl.add_entry({"v": i})
key = b'test-key-for-adapter'
raw_block = dl.export_delta_block(since_index=0, signer_key=key)
block = DeltaBlock.from_dict(raw_block)
# verify aggregated block signature and structure
assert block.root == raw_block["root"]
assert len(block.digests) == len(block.entries)
assert verify_block(block, signer_key=key)
def test_verify_single_entry_inclusion():
dl = DeltaLog()
for i in range(3):
dl.add_entry({"k": i})
block = DeltaBlock.from_dict(dl.export_delta_block(since_index=0))
# verify inclusion for each entry
for idx, digest in enumerate(block.digests):
assert verify_entry_inclusion(digest, block, idx)