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/`.
Зачем: учебная ценность в 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.
- Зачем:
- горячее ревью: перевезённая проверка 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 main2026-08-06 14:10:50 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Задача #56.
Счёт и строки
Счёт проверок в
make smoke— 25 было, 25 стало: ушёлcheck_env_consistency, пришёлcheck_keeper_runtime. Результат здесь не в счёте, а в строках:tests/,scripts/*smoke*.sh,config-test.sh)dags/test_*.py)Итого −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, где его не было.docs/architecture/testing.md..env.exampleобъяснена словами: справочник, который никто не сверяет.Проверка
Оба пробника отработали на живом стенде уже со свёрнутыми проверками:
test_clickhouseзаписал через ноду 1 и прочитал черезDistributedна ноде 2,test_kafkaзаписал маркер и прочитал его по адресу от брокера.Вне границ
generator/testsиscripts/clickhouse-smoke.shне тронуты. Деление смоука на цели и карта проверок — #54. Предсуществующие находки ruffUP017вdags/не правились:make lintсмотрит толькоgenerator/.- Зачем: - проверок стало больше, чем продукта, и росли они из критериев приёмки, а не из учебной ценности (#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.- Зачем: - горячее ревью: перевезённая проверка keeper потеряла привычку файла ограничивать обращения к контейнерам по времени и глушить их ошибки. - Что: - опрос keeper идёт через keeper_exec с timeout 20s и тихим stderr, в отчёте об отказе пустой ответ назван словами. - комментарий к проверке и абзац README переписаны на проверяемое утверждение: настройки объявлены в compose.yaml, смоук спрашивает, дошли ли они до процесса. - в пробнике ClickHouse ожидаемой строке возвращено имя expected_rows. - Проверка: - make config-test, make smoke, make smoke-cluster; отдельно проверено, что на паузе keeper проверка краснеет, а не виснет.