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 тестов проходят успешно
This commit is contained in:
deadzilla 2026-06-01 16:38:44 +05:00
parent e2c4ecdf5d
commit da84ecacdc
2 changed files with 3 additions and 5 deletions

2
bot.py
View File

@ -131,7 +131,7 @@ if __name__ == "__main__":
thread.start() thread.start()
try: try:
bot.run(token, raise_exception=True) bot.run(token)
except discord.LoginFailure as e: except discord.LoginFailure as e:
logger.critical(f"Ошибка авторизации бота: {e}", exc_info=True) logger.critical(f"Ошибка авторизации бота: {e}", exc_info=True)
print(f"❌ Токен неверный или бот отключён. Код ошибки: {e}") print(f"❌ Токен неверный или бот отключён. Код ошибки: {e}")

View File

@ -35,10 +35,8 @@ class TestBotErrorHandlingCodeExists:
with open(ROOT_DIR / "bot.py", encoding="utf-8") as f: with open(ROOT_DIR / "bot.py", encoding="utf-8") as f:
content = f.read() content = f.read()
# Проверяем наличие raise_exception=True # Проверяем обработку ошибок в bot.run()
assert "raise_exception=True" in content, ( assert "bot.run(token)" in content, "В bot.py должен быть вызов bot.run(token)"
"В bot.py должен присутствовать параметр raise_exception=True"
)
# Проверяем наличие обработки LoginFailure # Проверяем наличие обработки LoginFailure
assert "LoginFailure" in content, "В bot.py должна быть обработка LoginFailure" assert "LoginFailure" in content, "В bot.py должна быть обработка LoginFailure"