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("" + "x" * 5000 + "", [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]