refactor(events): drop forward-ref quote and test triggered_by default

Code review follow-up on f4d66dd:
- _handle_arm_request signature used "ArmStateFSM" as a string forward
  reference even though the type is imported at module top.
  _handle_event uses the bare form; match it for consistency.
- Add a test asserting that omitting triggered_by in an arm-request
  payload defaults to "unknown". That value feeds the audit log, so
  it deserves explicit regression coverage.

No behavior change.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
adlee-was-taken
2026-04-05 11:57:26 -04:00
parent 82ff7fb276
commit e6069a68fc
2 changed files with 23 additions and 1 deletions

View File

@@ -562,3 +562,25 @@ class TestArmRequestDispatch:
) )
assert calls == [] assert calls == []
def test_arm_request_default_triggered_by(self, test_db):
"""Omitting triggered_by must default to 'unknown' (audit-log value)."""
from vigilar.events.processor import EventProcessor
processor = EventProcessor.__new__(EventProcessor)
calls = []
class FakeFSM:
state = ArmState.DISARMED
def transition(self, new_state, pin="", triggered_by="system"):
calls.append((new_state, pin, triggered_by))
return True
processor._handle_arm_request(
payload={"mode": "DISARMED", "pin": ""},
fsm=FakeFSM(),
)
assert len(calls) == 1
assert calls[0][2] == "unknown"

View File

@@ -171,7 +171,7 @@ class EventProcessor:
def _handle_arm_request( def _handle_arm_request(
self, self,
payload: dict[str, Any], payload: dict[str, Any],
fsm: "ArmStateFSM", fsm: ArmStateFSM,
) -> None: ) -> None:
"""Handle an arm/disarm request received over MQTT. """Handle an arm/disarm request received over MQTT.