""" Тесты для bot.py — проверка обработки ошибок запуска бота. Покрывают пункт 1.2 из PLAN_OF_WORKS.md: - raise_exception=True в bot.run() - Логирование и обработка исключений (LoginFailure, HTTPException) """ import sys from pathlib import Path from unittest.mock import MagicMock, patch # Добавляем корень проекта в путь импорта ROOT_DIR = Path(__file__).resolve().parent.parent sys.path.insert(0, str(ROOT_DIR)) class TestBotInit: """Тесты для инициализации бота.""" def test_bot_created_with_default_prefix(self): """Проверка, что бот создан с правильным префиксом команд.""" import bot assert bot.bot.command_prefix == "!", ( f"Команда должна быть с префиксом '!', а не '{bot.bot.command_prefix}'" ) class TestBotErrorHandlingCodeExists: """Тесты для проверки наличия кода обработки ошибок в bot.py.""" def test_error_handling_code_exists(self): """Проверка, что код обработки ошибок существует в файле bot.py.""" with open(ROOT_DIR / "bot.py", encoding="utf-8") as f: content = f.read() # Проверяем наличие raise_exception=True assert "raise_exception=True" in content, ( "В bot.py должен присутствовать параметр raise_exception=True" ) # Проверяем наличие обработки LoginFailure assert "LoginFailure" in content, "В bot.py должна быть обработка LoginFailure" # Проверяем наличие обработки HTTPException assert "HTTPException" in content, "В bot.py должна быть обработка HTTPException" # Проверяем наличие логирования ошибок assert "logger.critical" in content, "В bot.py должно быть критическое логирование" if __name__ == "__main__": pytest.main([__file__, "-v"])