28 lines
2.4 KiB
Markdown
28 lines
2.4 KiB
Markdown
# 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` тесты
|