30 lines
956 B
Python
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"]
|