36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from datetime import UTC, datetime
|
|
|
|
from src.models.incident import Incident, Severity, Signal
|
|
from src.services.decision_manager import _incident_alertname_for_dedup
|
|
|
|
|
|
def test_telegram_dedup_alertname_uses_signal_not_missing_title() -> None:
|
|
incident = Incident(
|
|
incident_id="INC-TEST",
|
|
severity=Severity.P3,
|
|
signals=[
|
|
Signal(
|
|
alert_name="FallbackAlertName",
|
|
severity=Severity.P3,
|
|
source="alertmanager",
|
|
fired_at=datetime.now(UTC),
|
|
labels={"alertname": "DockerContainerMemoryLimitPressure"},
|
|
)
|
|
],
|
|
affected_services=["node-exporter-110"],
|
|
)
|
|
|
|
assert not hasattr(incident, "title")
|
|
assert _incident_alertname_for_dedup(incident) == "DockerContainerMemoryLimitPressure"
|
|
|
|
|
|
def test_telegram_dedup_alertname_falls_back_to_incident_id() -> None:
|
|
incident = Incident(
|
|
incident_id="INC-NO-SIGNAL",
|
|
severity=Severity.P3,
|
|
signals=[],
|
|
affected_services=[],
|
|
)
|
|
|
|
assert _incident_alertname_for_dedup(incident) == "INC-NO-SIGNAL"
|