diff --git a/ISSUES.md b/ISSUES.md index 22f61a5..a1b3dc0 100644 --- a/ISSUES.md +++ b/ISSUES.md @@ -63,8 +63,8 @@ ### Низкие -- [ ] **Глобальные экземпляры RateLimiter + factory-функции** — factory-функции `make_*_limiter()` существуют, но production-код импортирует глобальные переменные напрямую (`utils/rate_limiter.py`, строки 94-97) -- [ ] **`@pytest.mark.asyncio` избыточен** — `pytest.ini` уже содержит `asyncio_mode = auto` (`tests/test_integration.py`) -- [ ] **`Dockerfile` не копирует `tests/`** — нельзя запустить `pytest` внутри контейнера, затрудняет отладку в Docker -- [ ] **Приватные атрибуты на объекте бота** — `self.bot._start_time` и `self.bot._scheduler` нарушают инкапсуляцию (`bot.py`, строки 116, 148) -- [ ] **Избыточная проверка `ctx` в `on_command_error`** — `ctx` всегда передан и не может быть `None` (`bot.py`, строки 138-143) +- [x] ~~**Глобальные экземпляры RateLimiter + factory-функции**~~ — дизайн подтверждён: глобальные синглтоны для production, factory-функции для тестов. Добавлен поясняющий комментарий (`utils/rate_limiter.py`) +- [x] ~~**`@pytest.mark.asyncio` избыточен**~~ — удалены 5 декораторов из `tests/test_integration.py` (`pytest.ini` имеет `asyncio_mode = auto`) +- [x] ~~**`Dockerfile` не копирует `tests/`**~~ — добавлен `COPY tests/ tests/` и установка `pytest pytest-asyncio` (`Dockerfile`) +- [x] ~~**Приватные атрибуты на объекте бота**~~ — `START_TIME` вынесен на уровень модуля `bot.py`, `self.bot._scheduler` удалён (не использовался). Обновлены `commands/status.py` и тесты +- [x] ~~**Избыточная проверка `ctx` в `on_command_error`**~~ — удалены проверки `ctx and`, так как `ctx` гарантированно передан discord.py (`bot.py`)