Исправление ошибки совместимости:
• 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 тестов проходят успешно
Задачи Sprint 1 (Critical Fixes):
- [1.1] Fallback в пустом embed (!morning) — добавлена проверка has_real_data и fallback сообщение при отключении внешних API
- [1.2] Обработка ошибок токена/сети в bot.run() — raise_exception=True + логирование LoginFailure, HTTPException, Exception
- [1.3] Рефакторинг парсинга погоды — вынесено в format_weather_data_for_console(), убран дублирующий код из 2 файлов
Изменения:
• utils/morning_runner.py — добавлена проверка has_real_data после формирования description_lines
• bot.py — обработчики исключений для запуска бота с детализированным логированием и пользовательскими сообщениями
• utils/pogoda.py — новая функция format_weather_data_for_console() для центрального форматирования погодных данных
• console_commands/pogoda.py — замена 15 строк дублирующейся логики на вызов единой функции (24→8 строк)
• console_commands/morning.py — аналогичные изменения для команды morning (19→13 строк с погодой)
• tests/test_morning_runner.py — +2 теста для fallback сценариев empty embed и only weather data
• tests/test_bot.py — новый файл с 2 тестами на проверку кода обработки ошибок
• tests/test_pogoda.py — +6 тестов для format_weather_data_for_console()
Статистика тестирования:
• Общее количество тестов: 200 (было 190)
• Новые тесты: 10
• Все тесты проходят успешно
Примечания:
- Сообщения без восклицательных знаков согласно preferencem