idea182-implementation/tests/test_synopsis.py

30 lines
956 B
Python

import secrets
from gravityweave.plan_delta import PlanDelta
from gravityweave.delta_synopsis import build_synopsis, build_priority_key, serialize_synopsis, deserialize_synopsis
def test_priority_key_bounds():
k = build_priority_key(3, 12)
assert isinstance(k, int)
assert k == (3 << 4) | 12
def test_build_and_serialize_synopsis():
key = secrets.token_bytes(16)
p = PlanDelta(origin="nodeX")
p.commitments.add({"type": "burn", "fuel": 2.0})
p.priority.write(7)
syn = build_synopsis(p, parent_version="v0", urgency_score=2, impact_score=8,
affected_assets=["sat1", "relayA"], signer="nodeX", key=key)
assert syn["parent_version"] == "v0"
assert syn["priority_key"] == (2 << 4) | 8
assert syn["size_estimate"] > 0
assert syn["summary_hash"]
assert syn["short_sig"]
b = serialize_synopsis(syn)
d = deserialize_synopsis(b)
assert d["delta_id"] == syn["delta_id"]