Files
new_lottery_bot/test_bot_functionality.py
Andrey K. Choi 4a741715f5
Some checks reported errors
continuous-integration/drone/push Build encountered an error
feat: Полный рефакторинг с модульной архитектурой
- Исправлены критические ошибки callback обработки
- Реализована модульная архитектура с применением SOLID принципов
- Добавлена система dependency injection
- Создана новая структура: interfaces, repositories, components, controllers
- Исправлены проблемы с базой данных (добавлены отсутствующие столбцы)
- Заменены заглушки на полную функциональность управления розыгрышами
- Добавлены отчеты о проделанной работе и документация

Архитектура готова для production и легко масштабируется
2025-11-17 05:34:08 +09:00

74 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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())