discordBot/tests/test_bot.py
deadzilla da84ecacdc fix: исправить совместимость с discord.py без raise_exception=True
Исправление ошибки совместимости:
• bot.py — убран параметр raise_exception=True (не поддерживается в версии discord.py)
  * bot.run(token, raise_exception=True) → bot.run(token)
  * Обработка исключений сохранена через try/except вокруг bot.run()

• tests/test_bot.py — обновлённый тест проверки кода обработки ошибок
  * Убрана проверка на 'raise_exception=True' (не поддерживается)
  * Добавлена проверка на вызов 'bot.run(token)'

Преимущества:
- Бот корректно запускается без ошибки TypeError
- Обработка ошибок сохранена (LoginFailure, HTTPException, Exception)
- Все сообщения об ошибках выводятся пользователю и логируются критически
- 200 тестов проходят успешно
2026-06-01 16:38:44 +05:00

53 lines
2.2 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.

"""
Тесты для 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()
# Проверяем обработку ошибок в bot.run()
assert "bot.run(token)" in content, "В bot.py должен быть вызов bot.run(token)"
# Проверяем наличие обработки 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"])