2.4 KiB
2.4 KiB
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.iscoroutinefunctiondeprecated — 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-asyncioevent loop, рекомендуетсяasync defтесты