"""Tests for Telegram connect() non-retryable fatal error on missing credentials. When Telegram has no bot token or no python-telegram-bot installed, connect() must set a non-retryable fatal error so the gateway does not queue it for background reconnection (#31049). """ import pytest from gateway.config import PlatformConfig import plugins.platforms.telegram.adapter as telegram_mod # noqa: E402 from plugins.platforms.telegram.adapter import TelegramAdapter # noqa: E402 class TestTelegramUnconfiguredNonRetryable: """Verify that missing dependency/token sets a non-retryable fatal error.""" @pytest.mark.asyncio async def test_no_telegram_lib_sets_non_retryable_fatal(self, monkeypatch): """connect() with python-telegram-bot unavailable → non-retryable fatal error.""" adapter = TelegramAdapter(PlatformConfig(enabled=True, token="fake")) monkeypatch.setattr(telegram_mod, "TELEGRAM_AVAILABLE", False) result = await adapter.connect() assert result is False assert adapter.has_fatal_error is True assert adapter.fatal_error_retryable is False assert adapter.fatal_error_code == "missing_dependency"