Via-Demo / tests /test_telegram_handler.py
Itsjustamit's picture
Upload 40 files
b998556 verified
Raw
History Blame Contribute Delete
1.36 kB
from pathlib import Path
from app.agent.orchestrator import Orchestrator
from app.db.repo import Repository
from app.llm.client import LlmClient
from app.telegram.handler import TelegramHandler
from app.tools.mock_paytm import MockPaytmTools
from app.voice.stt import SttClient
def build_handler(tmp_path: Path) -> TelegramHandler:
repo = Repository(str(tmp_path / "telegram.sqlite3"))
repo.seed_demo_data(force=True)
orchestrator = Orchestrator(repo, MockPaytmTools(repo), LlmClient("", "", "llama"))
stt = SttClient("", "", "whisper-large-v3-turbo")
return TelegramHandler(orchestrator, stt, bot_token="")
def test_voice_update_without_bot_token_falls_back(tmp_path: Path) -> None:
handler = build_handler(tmp_path)
result = handler.process_update(
{"message": {"chat": {"id": 999}, "voice": {"file_id": "abc123"}}}
)
assert result["ok"] is True
assert result["input_type"] == "voice"
assert "transcription unavailable" in result["transcript"]
def test_audio_update_is_supported(tmp_path: Path) -> None:
handler = build_handler(tmp_path)
result = handler.process_update(
{"message": {"chat": {"id": 999}, "audio": {"file_id": "xyz123"}}}
)
assert result["ok"] is True
assert result["input_type"] == "voice"
assert "transcription unavailable" in result["transcript"]