release: nexus btpanel session fix and app-v2
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
"""Offline alert Telegram channel routing."""
|
||||
|
||||
from unittest.mock import AsyncMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from server.infrastructure.telegram import resolve_offline_telegram_credentials, send_telegram_offline_alert
|
||||
|
||||
|
||||
def test_resolve_offline_credentials_prefers_dedicated(monkeypatch):
|
||||
from server.config import settings
|
||||
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_BOT_TOKEN", "off-token")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_CHAT_ID", "off-chat")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_BOT_TOKEN", "main-token")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_CHAT_ID", "main-chat")
|
||||
|
||||
assert resolve_offline_telegram_credentials() == ("off-token", "off-chat")
|
||||
|
||||
|
||||
def test_resolve_offline_credentials_falls_back_to_main(monkeypatch):
|
||||
from server.config import settings
|
||||
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_BOT_TOKEN", "")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_CHAT_ID", "")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_BOT_TOKEN", "main-token")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_CHAT_ID", "main-chat")
|
||||
|
||||
assert resolve_offline_telegram_credentials() == ("main-token", "main-chat")
|
||||
|
||||
|
||||
def test_resolve_offline_credentials_partial_offline_uses_main(monkeypatch):
|
||||
from server.config import settings
|
||||
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_BOT_TOKEN", "off-only")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_CHAT_ID", "")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_BOT_TOKEN", "main-token")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_CHAT_ID", "main-chat")
|
||||
|
||||
assert resolve_offline_telegram_credentials() == ("main-token", "main-chat")
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_send_offline_alert_uses_dedicated_bot(monkeypatch):
|
||||
from server.config import settings
|
||||
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_BOT_TOKEN", "off-token")
|
||||
monkeypatch.setattr(settings, "TELEGRAM_OFFLINE_CHAT_ID", "off-chat")
|
||||
monkeypatch.setattr(settings, "NOTIFY_ALERT_OFFLINE", "true")
|
||||
|
||||
with patch(
|
||||
"server.infrastructure.telegram.send_telegram",
|
||||
new_callable=AsyncMock,
|
||||
return_value=True,
|
||||
) as mock_send:
|
||||
ok = await send_telegram_offline_alert("srv-1", server_id=9)
|
||||
|
||||
assert ok is True
|
||||
mock_send.assert_awaited_once()
|
||||
_, kwargs = mock_send.call_args
|
||||
assert kwargs["bot_token"] == "off-token"
|
||||
assert kwargs["chat_id"] == "off-chat"
|
||||
Reference in New Issue
Block a user