idea199-replicasurety-econo.../tests/test_verifier.py

24 lines
808 B
Python

from idea199_replicasurety_economic_surety.schemas import ReplayBundle
from idea199_replicasurety_economic_surety.replay_verifier import canonical_hash, verify_bundle
def make_bundle(metrics, invariants):
monitors = [{"name": "m0", "invariants": invariants}]
payload = {"trace": [], "metrics": metrics, "monitors": monitors}
root = canonical_hash(payload)
b = ReplayBundle(bundle_id="t", trace=[], metrics=metrics, monitors=monitors, evidence_root=root)
return b
def test_verifier_no_breach():
b = make_bundle({"cpu": 0.2}, ["cpu < 0.8"])
breach, msg = verify_bundle(b)
assert breach is False
def test_verifier_breach():
b = make_bundle({"cpu": 0.9}, ["cpu < 0.8"])
breach, msg = verify_bundle(b)
assert breach is True
assert "invariant breached" in msg