"""Unit tests for alert -> Ansible action context vars (task 250).""" from steward.core.alerts import alert_extra_vars from steward.models.alerts import AlertOperator, AlertRule def test_alert_extra_vars_describes_the_firing(): rule = AlertRule( name="UPS low battery", source_module="snmp", resource_name="ups", metric_name="battery_status", operator=AlertOperator.lt, threshold=3.0, created_by="u", ) ev = alert_extra_vars(rule, 2.0) assert "steward_alert_rule=UPS low battery" in ev assert "steward_alert_source=snmp" in ev assert "steward_alert_resource=ups" in ev assert "steward_alert_metric=battery_status" in ev assert "steward_alert_value=2.0" in ev assert "steward_alert_threshold=3.0" in ev assert "steward_alert_operator=<" in ev def test_alert_extra_vars_are_key_value_strings(): rule = AlertRule( name="r", source_module="host_agent", resource_name="srv1", metric_name="cpu_pct", operator=AlertOperator.gt, threshold=90.0, created_by="u", ) ev = alert_extra_vars(rule, 95.5) assert all("=" in item for item in ev) assert all(item.startswith("steward_alert_") for item in ev)