refactor(smoke): срезаны проверки стенда, не служащие менти #57

Merged
ddmitry merged 3 commits from refactor/56-srezat-proverki-stenda into main 2026-08-06 14:10:50 +03:00
Owner

Задача #56.

Счёт и строки

Счёт проверок в make smoke25 было, 25 стало: ушёл check_env_consistency, пришёл check_keeper_runtime. Результат здесь не в счёте, а в строках:

Было Стало
Проверки стенда (tests/, scripts/*smoke*.sh, config-test.sh) 1583 794
Пробники (dags/test_*.py) 447 413

Итого −823 строки; каталог tests/ исчез целиком. Проверок стенда стало ровно вдвое меньше.

Что удалено

  • tests/dag-probes-unit.py (307) — заглушки вокруг пробников в отрыве от стенда.
  • tests/stand-smoke-guards.sh (193) — мутационный сторож на setsid, гонках и разборе журналов DAG внутри контейнера.
  • tests/stand-smoke-static.sh (49) — тест теста; обе его проверки были про check_env_consistency.
  • tests/smoke-guards.sh (139) целиком вместе с целью make smoke-guards — все три её проверки платили убийством ноды или той же машинерией с группами процессов.
  • check_env_consistency в scripts/stand-smoke.sh (~105) — парсер ${VAR:-default} на bash.
  • Запуск юнит-тестов и греп по их выводу в scripts/config-test.sh (14).
  • Обвязка пробников: девять функций _assert_* свёрнуты в тела задач.

Поведения, которые сторожил smoke-guards.sh, остались на месте: подсказка «выполните make up» и уборка временных таблиц по Ctrl-C живут в scripts/clickhouse-smoke.sh, он не тронут. Удалён только сторож.

Что переехало и переписано

  • check_keeper_runtime — из tests/smoke-guards.sh в scripts/stand-smoke.sh, с комментарием о том, почему keeper мало быть здоровым.
  • Комментарий про отложенный импорт в dags/test_clickhouse.py ссылался на удалённые юнит-тесты. Переписан на настоящую причину: обработчик разбирает DAG-файл снова и снова, и тяжёлый импорт наверху оплачивался бы каждым разбором (рекомендация Airflow, best-practices.rst, сверено через Context7 на 3.1.6). Такой же комментарий заведён в dags/test_kafka.py, где его не было.
  • Мысль «проверка, которая не умеет краснеть, бесполезна» записана абзацем в README — вместо 193 строк гонок. В #54 переедет в docs/architecture/testing.md.
  • В README честно названо, что одиннадцать проверок здоровья повторяют то, чего Compose уже дождался, и роль .env.example объяснена словами: справочник, который никто не сверяет.

Проверка

make config-test    ЗЕЛЁНО
make up             все контейнеры Healthy
make smoke          ИТОГ: пройдено 25, ошибок 0
make smoke-cluster  ИТОГ: все 8 проверок кластера ClickHouse прошли

Оба пробника отработали на живом стенде уже со свёрнутыми проверками: test_clickhouse записал через ноду 1 и прочитал через Distributed на ноде 2, test_kafka записал маркер и прочитал его по адресу от брокера.

Вне границ

generator/tests и scripts/clickhouse-smoke.sh не тронуты. Деление смоука на цели и карта проверок — #54. Предсуществующие находки ruff UP017 в dags/ не правились: make lint смотрит только generator/.

Задача #56. ## Счёт и строки Счёт проверок в `make smoke` — **25 было, 25 стало**: ушёл `check_env_consistency`, пришёл `check_keeper_runtime`. Результат здесь не в счёте, а в строках: | | Было | Стало | |---|---|---| | Проверки стенда (`tests/`, `scripts/*smoke*.sh`, `config-test.sh`) | 1583 | 794 | | Пробники (`dags/test_*.py`) | 447 | 413 | Итого −823 строки; каталог `tests/` исчез целиком. Проверок стенда стало ровно вдвое меньше. ## Что удалено - `tests/dag-probes-unit.py` (307) — заглушки вокруг пробников в отрыве от стенда. - `tests/stand-smoke-guards.sh` (193) — мутационный сторож на setsid, гонках и разборе журналов DAG внутри контейнера. - `tests/stand-smoke-static.sh` (49) — тест теста; обе его проверки были про `check_env_consistency`. - `tests/smoke-guards.sh` (139) целиком вместе с целью `make smoke-guards` — все три её проверки платили убийством ноды или той же машинерией с группами процессов. - `check_env_consistency` в `scripts/stand-smoke.sh` (~105) — парсер `${VAR:-default}` на bash. - Запуск юнит-тестов и греп по их выводу в `scripts/config-test.sh` (14). - Обвязка пробников: девять функций `_assert_*` свёрнуты в тела задач. Поведения, которые сторожил `smoke-guards.sh`, остались на месте: подсказка «выполните `make up`» и уборка временных таблиц по Ctrl-C живут в `scripts/clickhouse-smoke.sh`, он не тронут. Удалён только сторож. ## Что переехало и переписано - `check_keeper_runtime` — из `tests/smoke-guards.sh` в `scripts/stand-smoke.sh`, с комментарием о том, почему keeper мало быть здоровым. - Комментарий про отложенный импорт в `dags/test_clickhouse.py` ссылался на удалённые юнит-тесты. Переписан на настоящую причину: обработчик разбирает DAG-файл снова и снова, и тяжёлый импорт наверху оплачивался бы каждым разбором (рекомендация Airflow, best-practices.rst, сверено через Context7 на 3.1.6). Такой же комментарий заведён в `dags/test_kafka.py`, где его не было. - Мысль «проверка, которая не умеет краснеть, бесполезна» записана абзацем в README — вместо 193 строк гонок. В #54 переедет в `docs/architecture/testing.md`. - В README честно названо, что одиннадцать проверок здоровья повторяют то, чего Compose уже дождался, и роль `.env.example` объяснена словами: справочник, который никто не сверяет. ## Проверка ``` make config-test ЗЕЛЁНО make up все контейнеры Healthy make smoke ИТОГ: пройдено 25, ошибок 0 make smoke-cluster ИТОГ: все 8 проверок кластера ClickHouse прошли ``` Оба пробника отработали на живом стенде уже со свёрнутыми проверками: `test_clickhouse` записал через ноду 1 и прочитал через `Distributed` на ноде 2, `test_kafka` записал маркер и прочитал его по адресу от брокера. ## Вне границ `generator/tests` и `scripts/clickhouse-smoke.sh` не тронуты. Деление смоука на цели и карта проверок — #54. Предсуществующие находки ruff `UP017` в `dags/` не правились: `make lint` смотрит только `generator/`.
ddmitry added 2 commits 2026-08-06 13:07:32 +03:00
Зачем: учебная ценность в AGENTS.md заявлена дважды, но обе строки —
утверждения о ценности, а не действие в момент письма. При них проверок
в репозитории выросло больше, чем продукта.

Что: в раздел «Цель репозитория» добавлен проверяемый вопрос к любой
доработке — чему на ней научится менти — с ветвью: не складывается ответ,
значит это вопрос владельцу, а не строчка кода.

Проверка: не требуется, правка документа.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Зачем:
  - проверок стало больше, чем продукта, и росли они из критериев приёмки,
    а не из учебной ценности (#56).
- Что:
  - удалены tests/dag-probes-unit.py, tests/stand-smoke-guards.sh,
    tests/stand-smoke-static.sh и tests/smoke-guards.sh вместе с целью
    make smoke-guards и запуском юнит-тестов в scripts/config-test.sh.
  - из scripts/stand-smoke.sh убран check_env_consistency, туда же переехал
    check_keeper_runtime; счёт проверок остался 25.
  - в пробниках свёрнуты функции _assert_*, комментарий про отложенный импорт
    переписан на причину из документации Airflow и продублирован в test_kafka.
- Проверка:
  - make config-test, make up, make smoke, make smoke-cluster.
ddmitry added 1 commit 2026-08-06 14:01:52 +03:00
- Зачем:
  - горячее ревью: перевезённая проверка keeper потеряла привычку файла
    ограничивать обращения к контейнерам по времени и глушить их ошибки.
- Что:
  - опрос keeper идёт через keeper_exec с timeout 20s и тихим stderr,
    в отчёте об отказе пустой ответ назван словами.
  - комментарий к проверке и абзац README переписаны на проверяемое
    утверждение: настройки объявлены в compose.yaml, смоук спрашивает,
    дошли ли они до процесса.
  - в пробнике ClickHouse ожидаемой строке возвращено имя expected_rows.
- Проверка:
  - make config-test, make smoke, make smoke-cluster; отдельно проверено,
    что на паузе keeper проверка краснеет, а не виснет.
ddmitry merged commit f84f8c416f into main 2026-08-06 14:10:50 +03:00
ddmitry deleted branch refactor/56-srezat-proverki-stenda 2026-08-06 14:10:53 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#57