Подготовка к релизу

This commit is contained in:
2025-10-30 18:28:26 +03:00
parent 69c0162c6b
commit 4981db90a0
191 changed files with 45557 additions and 3651 deletions
+71
View File
@@ -0,0 +1,71 @@
#!/usr/bin/env python3
"""
Простой тестовый раннер для телеграм-бота.
Запускает базовые тесты для проверки работоспособности системы.
"""
import subprocess
import sys
import os
from datetime import datetime
import locale
def run_tests():
"""Запуск основных тестов"""
# Устанавливаем UTF-8 для корректного вывода эмодзи
try:
locale.setlocale(locale.LC_ALL, 'C.UTF-8')
except locale.Error:
try:
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
except locale.Error:
pass # Если UTF-8 не доступен, продолжаем без него
print("[TEST] Запуск тестирования телеграм-бота")
print(f"[TIME] Время начала: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
# Проверяем, установлен ли pytest
try:
import pytest
print("[OK] pytest найден")
except ImportError:
print("[INSTALL] Установка pytest...")
subprocess.run([sys.executable, "-m", "pip", "install", "pytest", "pytest-asyncio"], check=True)
# Запускаем тесты
test_dirs = [
"test_utils/",
"test_services/",
"test_handlers/",
"test_integration/"
]
success = True
for test_dir in test_dirs:
if os.path.exists(test_dir):
print(f"\n[RUN] Запуск тестов из {test_dir}")
result = subprocess.run([
sys.executable, "-m", "pytest", test_dir, "-v", "--tb=short"
], capture_output=True, text=True)
if result.returncode == 0:
print(f"[PASS] Тесты {test_dir} - ПРОЙДЕНЫ")
print(result.stdout)
else:
print(f"[FAIL] Тесты {test_dir} - ПРОВАЛЕНЫ")
print(result.stderr)
success = False
# Итоговый результат
print(f"\n[FINISH] Тестирование завершено: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
if success:
print("[SUCCESS] Все тесты пройдены успешно!")
return 0
else:
print("[ERROR] Некоторые тесты провалились")
return 1
if __name__ == "__main__":
sys.exit(run_tests())