fix(telegram): sanitize failover alert errors
This commit is contained in:
@@ -19,6 +19,8 @@ from src.services.failover_alerter import (
|
||||
DEDUP_TTL_SEC,
|
||||
QUOTA_DEDUP_TTL_SEC,
|
||||
FailoverAlerter,
|
||||
_lines_from_list,
|
||||
_sanitize_telegram_error,
|
||||
configure_alerter,
|
||||
get_failover_alerter,
|
||||
reset_failover_alerter,
|
||||
@@ -231,3 +233,19 @@ async def test_memory_dedup_max_size_gc():
|
||||
|
||||
# GC 後:999 個 stale entry 被清除,只剩 fresh:key + trigger:gc:key
|
||||
assert len(alerter._memory_dedup) <= 3 # fresh + trigger + 可能有邊界差1
|
||||
|
||||
|
||||
def test_lines_from_list_escapes_markdown_v2_numbered_periods() -> None:
|
||||
rendered = _lines_from_list(["修復 node-exporter-110"])
|
||||
|
||||
assert "1\\." in rendered
|
||||
assert "node\\-exporter\\-110" in rendered
|
||||
|
||||
|
||||
def test_sanitize_telegram_error_redacts_bot_token_url() -> None:
|
||||
raw = "HTTP error for https://api.telegram.org/bot123456:SECRET/sendMessage"
|
||||
|
||||
sanitized = _sanitize_telegram_error(raw)
|
||||
|
||||
assert "SECRET" not in sanitized
|
||||
assert "bot<redacted>" in sanitized
|
||||
|
||||
12
apps/api/tests/test_telegram_gateway_error_sanitizer.py
Normal file
12
apps/api/tests/test_telegram_gateway_error_sanitizer.py
Normal file
@@ -0,0 +1,12 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from src.services.telegram_gateway import _sanitize_telegram_error
|
||||
|
||||
|
||||
def test_telegram_gateway_sanitizes_bot_token_url() -> None:
|
||||
raw = "Client error for https://api.telegram.org/bot123456:SECRET/sendMessage"
|
||||
|
||||
sanitized = _sanitize_telegram_error(raw)
|
||||
|
||||
assert "SECRET" not in sanitized
|
||||
assert "bot<redacted>" in sanitized
|
||||
Reference in New Issue
Block a user