Files
awoooi/apps/api/tests/test_channel_hub_grouped_alert_events.py
Your Name 5d38115d2f
All checks were successful
Code Review / ai-code-review (push) Successful in 10s
CD Pipeline / tests (push) Successful in 1m13s
CD Pipeline / build-and-deploy (push) Successful in 4m9s
CD Pipeline / post-deploy-checks (push) Successful in 1m20s
fix(awooop): anchor legacy channel events to shadow runs
2026-05-07 10:12:52 +08:00

70 lines
2.3 KiB
Python

from __future__ import annotations
from src.services.channel_hub import (
build_grouped_alert_provider_event_id,
build_grouped_alert_run_id,
format_grouped_alert_digest_text,
format_grouped_alert_event_content,
)
def test_build_grouped_alert_provider_event_id_is_deterministic() -> None:
event_id = build_grouped_alert_provider_event_id(
"INC-20260507-ABCD12",
"1234567890abcdef" * 4,
)
assert event_id == "alert-group:INC-20260507-ABCD12:1234567890abcdef1234567890abcdef"
assert len(event_id) < 256
def test_build_grouped_alert_run_id_is_stable() -> None:
provider_event_id = build_grouped_alert_provider_event_id(
"INC-20260507-ABCD12",
"1234567890abcdef" * 4,
)
first = build_grouped_alert_run_id("awoooi", provider_event_id)
second = build_grouped_alert_run_id("awoooi", provider_event_id)
other_project = build_grouped_alert_run_id("ewoooc", provider_event_id)
assert first == second
assert first != other_project
def test_format_grouped_alert_event_content_keeps_operator_context() -> None:
content = format_grouped_alert_event_content(
alert_id="INC-20260507-ABCD12",
alertname="DockerContainerRestartSpike",
severity="critical",
namespace="default",
target_resource="sentry-self-hosted-events-consumer-1",
group_key="DockerContainerRestartSpike:default",
count=4,
parent_fingerprint="parent-fp",
fingerprint="child-fp",
)
assert "告警已收斂,不發 Telegram" in content
assert "Alert: DockerContainerRestartSpike" in content
assert "Target: sentry-self-hosted-events-consumer-1" in content
assert "Group Count: 4" in content
assert "Parent Fingerprint: parent-fp" in content
def test_format_grouped_alert_digest_text_is_html_safe() -> None:
content = format_grouped_alert_digest_text(
alertname="Docker<Restart>",
severity="critical",
namespace="default",
target_resource="sentry&snuba",
group_key="Docker<Restart>:default",
count=7,
)
assert "告警已收斂到父卡" in content
assert "Docker&lt;Restart&gt;" in content
assert "sentry&amp;snuba" in content
assert "<b>7</b> 筆同組告警" in content
assert "AwoooP Run 監控" in content