discordBot/ISSUES.md

2.4 KiB
Raw Permalink Blame History

ISSUES — Задачи и баг-трекер

Средний приоритет

  • Добавить тесты для console_commands/ — есть logs, reload, trigger_morning, help. Не хватает: pogoda, news, morning, cat, status, stats
  • Проверка наличия .env — есть проверка DISCORD_TOKEN в _validate_config(), но нет проверки существования самого файла .env (без файла бот падает с непонятной ошибкой)
  • Graceful shutdown (SIGTERM/SIGINT) — нет обработчиков сигналов, бот завершается резко без закрытия handler-ов и cleanup
  • asyncio.iscoroutinefunction deprecated — 35 warnings, функция удалена в Python 3.16; заменить на inspect.iscoroutinefunction (решение: обновление discord.py или monkey-patch в bot.py)
  • Утечка корутины в тестахRuntimeWarning: coroutine 'trigger_morning.<locals>._run' was never awaited в test_trigger_morning.py

Консольные команды

Низкий приоритет

  • memory — текущее потребление памяти процесса
  • health — проверка доступности внешних API (wttr.in, TheCatAPI, Habr)
  • debug <on|off> — переключить verbose-режим бота

Низкий приоритет

  • Добавить pre-commit хуки — lint (flake8/ruff), форматирование (black)
  • Добавить type hints повсеместно — не все функции имеют аннотации (отсутствуют в utils/pogoda.py, utils/news.py, присутствуют в utils/cat.py, utils/morning_runner.py)
  • Интеграционные тесты — сейчас только unit-тесты с моками

Замечания

  • В тестовых файлах используется asyncio.run() внутри синхронных тестов (50 вхождений: test_fetch_cat.py — 10, test_fetch_rss.py — 21, test_fetch_weather.py — 19) — конфликт с pytest-asyncio event loop, рекомендуется async def тесты