test(ci): сторож пропусков кричит ::error:: под Actions (#2871) #2876

Merged
bot-backend merged 1 commit from ci/2871-skip-guard-loud into main 2026-08-13 21:05:55 +00:00

1 commit

Author SHA1 Message Date
662ada3927 test(ci): сторож пропусков кричит ::error:: под Actions
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m20s
CI / backend-tests (pull_request) Successful in 16m44s
13.08 этот сторож четыре прогона подряд ронял backend-tests совершенно
правильно: два новых теста скипались без TEST_DATABASE_URL и не были
объявлены в skip_allowlist.txt. Но его строка лежала посреди тысячи
других — обычный print, по-русски, на 1014-й строке лога, за две секунды
до зелёной сводки pytest. Поиск по «FAILED / ERROR» её не находил.
Причину искали три часа: диск, раннер, покрытие, кэш, два невиновных шага.

Защита сработала, её не услышали. Под Actions дублируем сообщение
в ::error:: — Forgejo поднимает такие строки в аннотации job'ы.
Локально ничего не меняется: человеческий текст как был.

Тесты двусторонние: против conftest из main падает ровно новый
(test_guard_emits_error_annotation_under_actions), два контрольных —
«локально ::error:: нет» и «без незадекларированных пропусков молчит
и не роняет» — зелёные с обеих сторон.

Один хунк форматирования — не мой: pre-commit ruff v0.7.4 против 0.15.12 (#2864).

Refs #2871
2026-08-13 22:36:19 +05:00