Files
roboco/tests/foundation/test_tracing_verb_parity.py
T

28 lines
954 B
Python
Raw Normal View History

2026-05-11 02:15:47 +02:00
"""Every gateway intent verb is either in VERB_REQUIREMENTS or VERBS_WITHOUT_TRACING."""
from __future__ import annotations
from roboco.foundation.policy import lifecycle as spec
from roboco.foundation.policy import tracing
def test_every_intent_verb_has_a_tracing_decision() -> None:
intent_verbs = set(spec._INTENT_VERBS.keys())
in_table = set(tracing.VERB_REQUIREMENTS)
in_waived = set(tracing.VERBS_WITHOUT_TRACING)
uncovered = intent_verbs - in_table - in_waived
assert uncovered == set(), (
f"verbs in lifecycle.spec without tracing decision: {uncovered}"
)
def test_every_requirement_is_used_by_at_least_one_verb() -> None:
"""No dangling enum values."""
used: set[tracing.Requirement] = set()
for reqs in tracing.VERB_REQUIREMENTS.values():
used.update(reqs)
unused = set(tracing.Requirement) - used
assert unused == set(), f"Requirement values referenced by no verb: {unused}"