#!/usr/bin/env python3 """ Скрипт для тестирования функциональности бота """ import asyncio import sys import os sys.path.insert(0, os.path.dirname(__file__)) from src.core.database import async_session_maker from src.core.models import User, Lottery from sqlalchemy import select async def test_database_connectivity(): """Тест подключения к базе данных""" print("🔌 Тестируем подключение к базе данных...") async with async_session_maker() as session: # Проверяем подключение result = await session.execute(select(1)) print("✅ Подключение к PostgreSQL работает") # Проверяем количество пользователей users_count = await session.execute(select(User)) users = users_count.scalars().all() print(f"📊 В базе {len(users)} пользователей") # Проверяем количество лотерей lotteries_count = await session.execute(select(Lottery)) lotteries = lotteries_count.scalars().all() print(f"🎰 В базе {len(lotteries)} лотерей") async def test_bot_imports(): """Тест импортов бота""" print("🔄 Тестируем импорты модулей...") try: from src.handlers.registration_handlers import router as registration_router print("✅ registration_router импортирован") from src.handlers.admin_panel import admin_router print("✅ admin_router импортирован") from src.handlers.account_handlers import account_router print("✅ account_router импортирован") from src.core.config import BOT_TOKEN print("✅ BOT_TOKEN получен из конфигурации") except Exception as e: print(f"❌ Ошибка импорта: {e}") return False return True async def main(): """Основная функция тестирования""" print("🤖 Тестирование функциональности лотерейного бота") print("=" * 50) # Тест импортов imports_ok = await test_bot_imports() if imports_ok: print("\n") # Тест базы данных await test_database_connectivity() print("\n" + "=" * 50) print("✅ Тестирование завершено") if __name__ == "__main__": asyncio.run(main())