Актуализация README.md: убрал несуществующие !hp/help.py/test_help_discord, добавил test_integration, conftest, .gitignore, .pre-commit-config.yaml, обновил зависимости и счётчик тестов (154 → 161)

This commit is contained in:
deadzilla 2026-07-09 12:53:48 +05:00
parent 7cef202c8f
commit f417a9abbc

View File

@ -36,7 +36,6 @@ python bot.py
|---------|----------|
| `!pg` | Прогноз погоды для Магнитогорска |
| `!nw` | Топ-5 статей и топ-5 новостей по AI с Habr |
| `!hp` | Список всех команд бота с описанием (автогенерация из `bot.commands`) |
| `!morning` | Погода + топ-5 статей + топ-5 новостей + котик (утренний дайджест) |
| `!cat` | Случайный котик |
| `!status` | Статус бота: пинг к Discord gateway, uptime |
@ -52,7 +51,6 @@ commands/ # Discord команды (cogs)
news.py # !nw — статьи + новости с Habr
cat.py # !cat — случайный котик
morning.py # !morning — утренний дайджест (обёртка над utils.morning_runner)
help.py # !hp — список команд (автогенерация из bot.commands)
status.py # !status — статус бота: пинг, uptime
stats.py # !stats — серверы, каналы, пользователи
utils/ # Утилиты (API-клиенты, конвертации)
@ -72,15 +70,18 @@ tests/ # pytest-тесты
test_commands_pg.py # Pg cog
test_bot.py # инициализация бота
test_morning_runner.py# тесты morning runner-а
test_help_discord.py # команда !hp — проверка формата вывода и контента
test_logger.py # setup_logging — уровни, обработчики, формат
test_commands_status.py # команда !status — embed и uptime
test_commands_stats.py # команда !stats — подсчёт серверов и каналов
test_integration.py # интеграционные тесты (загрузка когов, поток команд)
conftest.py # monkey-patch asyncio.iscoroutinefunction (Python 3.14+ / discord.py 2.7.1)
ISSUES.md # Задачи и баг-трекер проекта
pytest.ini # Конфигурация pytest (asyncio_mode = auto)
Dockerfile # Сборка образа бота (Python 3.14-slim, healthcheck)
docker-compose.yml # Запуск бота в Docker
.dockerignore # Исключения для Docker-контекста
.gitignore # Исключения для Git (venv, .env, логи, IDE)
.pre-commit-config.yaml # pre-commit хуки (ruff lint + ruff-format)
```
### Добавление Discord команды
@ -107,12 +108,12 @@ python -m pytest tests/ -v
| `test_commands_pg.py` | `Pg` cog, команда `!pg` | 13 |
| `test_bot.py` | инициализация бота | 5 |
| `test_morning_runner.py` | morning runner | 12 |
| `test_help_discord.py` | команда `!hp` | 2 |
| `test_logger.py` | `setup_logging` (уровни, обработчики, формат) | 9 |
| `test_rate_limiter.py` | `RateLimiter` (токен-бакет) | 5 |
| `test_commands_status.py` | команда `!status` (embed, uptime) | 6 |
| `test_commands_stats.py` | команда `!stats` (серверы, каналы) | 5 |
**Итого: 154 теста.**
| `test_integration.py` | загрузка когов, поток команд (моки API) | 9 |
**Итого: 161 тест.**
## Запуск в Docker
@ -133,6 +134,8 @@ DISCORD_TOKEN=ваш_токен docker-compose up
- База: `python:3.14-slim`
- Healthcheck: проверка каждые 30 сек (старт-период 60 сек)
- Версия Python настраивается через `ARG PYTHON_VERSION`
- Часовой пояс: `TZ=Asia/Yekaterinburg` (в docker-compose.yml)
- Установлены `tzdata` и `procps` для healthcheck и корректных дат
## API и внешние сервисы
@ -214,13 +217,16 @@ DISCORD_TOKEN=ваш_токен docker-compose up
discord.py>=2.3.2
python-dotenv>=1.0.0
requests>=2.31.0
defusedxml>=0.7.0
```
### Development (`requirements-dev.txt`)
```txt
pre-commit>=3.5.0
pytest>=7.4.0
pytest-asyncio>=0.21.0
ruff>=0.8.0
```
## Безопасность