discordBot/ISSUES.md

3.0 KiB
Raw Blame History

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

Исправлено

  • Эмодзи в embed-сообщениях — удалены 🌅, , из utils/morning_runner.py
  • f-string в logger — замена на %-формат в bot.py
  • import time внутри __init__ — перенесён на уровень модуля в bot.py
  • Проверка наличия .env.env в .gitignore, есть .env.example
  • Команда !msg в BotRunner — удалена из проекта
  • Отсутствует .gitignore — файл существует
  • Отсутствует Dockerfile — файл существует
  • Отсутствует .env.example — файл существует

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

  • Type hints в production-коде — 17 функций без аннотаций:
    • commands/: cat(), hp(), morning(), nw(), pg(), stats(), status() — все методы Cog
    • utils/pogoda.py: fetch_weather(), fetch_open_meteo(), wmo_to_russian(), translate_weather(), format_weather_data_for_console(), format_weather_for_embed(), pressure_to_mmhg()
    • utils/news.py: fetch_rss(), truncate_title(), format_articles()
    • utils/morning_runner.py: run_morning(), start(), stop()
  • asyncio.iscoroutinefunction deprecated — 53 warnings при запуске тестов, функция удалена в Python 3.16; причина — discord.py использует deprecated API (решение: обновление discord.py или monkey-patch в bot.py)
  • Утечка корутины Scheduler в тестахRuntimeWarning: coroutine 'Scheduler._scheduler_loop' was never awaited в test_morning_runner.py (строки 105, 137, 166 — моки не останавливают task)
  • Graceful shutdown (SIGTERM) — нет обработки SIGTERM, бот завершается резко в Docker/K8s без закрытия handler-ов и cleanup
  • Пустой __init__ в Morningcommands/morning.py (строка 13): def __init__(self): pass можно убрать
  • Global RateLimiter на модульном уровнеutils/rate_limiter.py (строки 70-75): экземпляры создаются при импорте, нельзя подменить в тестах

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

  • Type hints в тестах — 144 функции test_*() без -> None (не влияет на работу, но зашумляет warnings)
  • import внутри функций в тестах — 23 вхождения в tests/ (приемлемо, но лучше вынести наверх)
  • Добавить pre-commit хуки — lint (ruff), форматирование (black)
  • Интеграционные тесты — сейчас только unit-тесты с моками