findFilms/app/test_telegram_bot.py

76 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""
Скрипт для тестирования Telegram бота локально
"""
import asyncio
import httpx
import logging
from telegram_bot import MovieSearchBot
# Настройка логирования
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
logger = logging.getLogger(__name__)
async def test_api_connection():
"""Тестирование подключения к API"""
try:
# Тестируем подключение к основному API
async with httpx.AsyncClient() as client:
response = await client.get("http://localhost:8089/api/search/terminator")
if response.status_code == 200:
logger.info("✅ Main API connection successful")
return True
else:
logger.error(f"❌ Main API error: {response.status_code}")
return False
except Exception as e:
logger.error(f"❌ API connection failed: {e}")
return False
async def test_tmdb_connection():
"""Тестирование подключения к TMDB"""
try:
async with httpx.AsyncClient() as client:
response = await client.get(
"https://api.themoviedb.org/3/search/movie",
params={
"api_key": "6d58225585fb77af5945a964de41849f",
"query": "terminator",
"language": "ru-RU"
}
)
if response.status_code == 200:
logger.info("✅ TMDB API connection successful")
return True
else:
logger.error(f"❌ TMDB API error: {response.status_code}")
return False
except Exception as e:
logger.error(f"❌ TMDB connection failed: {e}")
return False
async def main():
"""Главная функция тестирования"""
logger.info("🧪 Testing Telegram Bot components...")
# Тестируем подключения
api_ok = await test_api_connection()
tmdb_ok = await test_tmdb_connection()
if api_ok and tmdb_ok:
logger.info("✅ All tests passed! Bot should work correctly.")
logger.info("🚀 Starting Telegram Bot...")
# Запускаем бота
bot = MovieSearchBot()
await bot.run()
else:
logger.error("❌ Some tests failed. Please check your setup.")
logger.error("Make sure the main application is running on port 8089")
if __name__ == "__main__":
asyncio.run(main())