diff --git a/ISSUES.md b/ISSUES.md index bdc97dc..4459ae0 100644 --- a/ISSUES.md +++ b/ISSUES.md @@ -2,8 +2,11 @@ ## Средний приоритет -- [ ] **Добавить тесты для `console_commands/`** — есть только `test_help_console.py`, нужны `test_pogoda_console.py`, `test_news_console.py`, `test_morning_console.py` -- [ ] **Проверка наличия `.env`** — добавить явную проверку с информативным сообщением +- [ ] **Добавить тесты для `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.._run' was never awaited` в `test_trigger_morning.py` ## Консольные команды @@ -21,5 +24,4 @@ ## Замечания -- [ ] `README.md` ссылается на `AGENTS.md` как основной документ проекта, но AGENTS.md — инструкции для AI-ассистента -- [ ] В тестовых файлах используется `asyncio.run()` внутри синхронных тестов — может конфликтовать с event loop (подтверждено: 50+ вхождений в `test_fetch_cat.py`, `test_fetch_rss.py`, `test_fetch_weather.py`) +- [ ] В тестовых файлах используется `asyncio.run()` внутри синхронных тестов (50 вхождений: `test_fetch_cat.py` — 10, `test_fetch_rss.py` — 21, `test_fetch_weather.py` — 19) — конфликт с `pytest-asyncio` event loop, рекомендуется `async def` тесты