mirror of
https://github.com/FerraSoft/bottohelp.git
synced 2026-08-06 21:55:03 +00:00
Подготовка к релизу
This commit is contained in:
@@ -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())
|
||||
Reference in New Issue
Block a user