Files
checkbot/tests/test_delivery.py
patrickandClaude Sonnet 5.5 cdcf7f673a
test / pytest (3.11) (push) Canceled after 0s
test / pytest (3.13) (push) Canceled after 0s
fix: Härtung nach Referenz-Review, Phase-6d-Fallbacks vermerkt
Telegram: Plain-Text-Fallback bei Parse-Fehler, tag-sichere Kürzung auf 4096.
Matrix: bytebewusste Kürzung. Downtime: lesender Abgleich nach dem POST,
generische Fehlermeldung im Chat. Agent: Platzhalter für nicht ausgeführte
Tool-Calls, Text im letzten Schritt erzwingen, Zeitreserve, Kompaktierung,
Limit pro Antwort. CLAUDE.md: Fallbacks für Phase 6d.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-06 11:58:54 +01:00

34 lines
995 B
Python

from app.alerts.delivery import Deliverer
from app.alerts.extras import Extras
from app.chat import BACKEND_TELEGRAM, Target, TELEGRAM_MESSAGE_MAX
class RecordingAdapter:
name = BACKEND_TELEGRAM
def __init__(self):
self.sent = []
async def send(self, target, text, buttons=(), silent=False):
self.sent.append(text)
return None
async def edit(self, ref, text, buttons=(), silent=False):
self.sent.append(text)
async def test_hint_is_kept_intact_when_text_is_long():
adapter = RecordingAdapter()
deliverer = Deliverer(lambda: _adapters(adapter))
hint = "Antwort mit !mute 2h zum Stummschalten"
extra = Extras(hint=hint)
await deliverer.send("<b>" + "x" * 5000 + "</b>", [Target(BACKEND_TELEGRAM, "42")],
extras=lambda backend: extra)
sent = adapter.sent[0]
assert sent.endswith(f"\n{hint}")
assert len(sent) <= TELEGRAM_MESSAGE_MAX
async def _adapters(adapter):
return [adapter]