Skip to content

Vaframai/kimi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catalog Bot

Telegram-бот для каталога товаров.

Установка зависимостей

Перед запуском проверок (make check) необходимо установить dev-зависимости:

pip install -r requirements.txt
pip install -r requirements-dev.txt

Проверки

  • make check — все проверки (компиляция, smoke_suite, callback_coverage, ruff)
  • make check-fast — быстрые проверки (без ruff)
  • make check-smoke — только smoke_suite
  • make check-callback — только callback_coverage
  • make check-compile — только компиляция
  • make check-ruff — только ruff (F401, F841)

Тесты (unit / db / integration)

Стабильный набор (основная команда для CI и перед релизом):

python3 -m pytest -m "(unit or db) and not integration" -v --tb=short

Воспроизводимо на любой машине, без зависимости от data/catalog_bot.db. Тестовая БД создаётся автоматически (seed + копия на тест для @pytest.mark.db).

Интеграционные тесты (отдельно, не блокируют стабильный набор):

python3 -m pytest -m "integration" -v --tb=short

Все тесты:

python3 -m pytest tests/ -v --tb=short

Подробнее: см. tests/README_TESTS.md (маркеры unit/db/integration, как гонять локально).

Перед выкладкой (ТЗ П.9)

Перед релизом запустить по порядку:

  1. pytest — стабильные тесты (unit + db, без тяжёлых integration):
    python3 -m pytest tests/ -m "(unit or db) and not integration" -v --tb=short
    или полный набор: python3 -m pytest tests/ -v --tb=short
  2. smoke_db_checks — проверка БД и инвариантов (без Telegram):
    python3 scripts/smoke_db_checks.py
    Должен завершиться с кодом 0 (иначе — исправить инварианты serial/stock или доступ к таблицам).
  3. Сценарии из SMOKE.md — пройти вручную 4 ключевых сценария (каталог→заявка, trade-in, stock, гарантия) и убедиться, что ожидания из SMOKE.md выполнены.

Подробное описание сценариев, окружения и критериев PASS/FAIL — в файле SMOKE.md в корне проекта.

Секреты и .env (ТЗ П.6 C)

  • Секреты хранятся в .env (не коммитить). Пример: .env.example.
  • В .gitignore уже добавлены: .env, .env.local, .env.*.local, *.env (исключение: !*.env.example).
  • В коде токены и пароли не логируются. При запуске бота окружение проверяется через utils.env.validate_env(); при отсутствии BOT_TOKEN (если не CI) — понятная ошибка без вывода значения.
  • Подробнее: docs/verification/run_local.md (как запустить локально, в CI, что будет при отсутствии env).

Структура проекта

  • bot.py — точка входа
  • handlers/ — обработчики сообщений и callback'ов
  • catalog/ — логика каталога товаров
  • scripts/ — guard-скрипты и утилиты проверки
  • docs/ — документация и отчёты

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors