ci(tradein): снять последний deselect — он пережил починку своего теста
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
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 / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped

`--deselect tests/test_search_api.py::test_search_cache_hit` в post-merge
test-job'е остался единственным deselect'ом в репозитории. Его объяснение
(«падает только при полном прогоне, в изоляции проходит — global-state leak»)
было неверным в обеих половинах: тест падал и в изоляции, потому что ходил в
/api/v1/search без X-Authenticated-User, а RBAC-гард отвечает 401. Причина
была в тесте; заголовок добавлен в #2729, и в pre-merge гейте строка снята
тогда же. Здесь она пережила починку ещё на месяц — файл был занят открытым
#2680. Тот смержен, долг закрыт.

Заодно `-rs`, как в остальных лэйнах: пропуск печатает причину. Ожидание в
этом лэйне — 13 объявленных пропусков; неучтённый роняет прогон через хук
бюджета (#2745).

После этого коммита в репозитории не остаётся ни одного `--deselect`.
This commit is contained in:
bot-backend 2026-08-07 01:51:46 +05:00
parent 76c3f5c110
commit 978461e96a

View file

@ -164,15 +164,25 @@ jobs:
run: uv sync --frozen
- name: Run pytest (tradein-mvp/backend)
# DESELECT (актуализировано 2026-07-02, #2208): test_search_cache_hit падает
# ТОЛЬКО в whole-suite ordering (401 vs 200; в изоляции проходит) — global-state
# leak из другого test-модуля, pre-existing. Второй исторический deselect
# (test_cian_valuation::test_cache_hit_returns_cached) убран — проходит в полном
# прогоне (проверено 2026-07-02: 2947 passed / 1 failed). Список обязан
# совпадать с backend-tests в ci-tradein.yml (pre-merge гейт).
run: |
uv run pytest -q \
--deselect "tests/test_search_api.py::test_search_cache_hit"
# БЕЗ deselect'ов — сьют гоняется целиком, как в ci-tradein.yml.
#
# Здесь жил `--deselect tests/test_search_api.py::test_search_cache_hit` с
# объяснением «падает ТОЛЬКО в whole-suite ordering, в изоляции проходит —
# global-state leak из другого модуля». Объяснение было неверным в обеих
# половинах: тест падал и в изоляции тоже (401 vs 200), потому что ходил в
# /api/v1/search БЕЗ заголовка X-Authenticated-User, а RBAC-гард отвечает на
# такое 401. Причина была в самом тесте; заголовок добавлен в #2729, и в
# pre-merge гейте deselect снят тогда же. Здесь строка пережила починку ещё
# на месяц — файл был занят открытым #2680. Тот смержен, долг закрыт.
#
# Не добавлять сюда новые deselect'ы: молча выключенный тест — тот же класс
# дефекта, что каталог вне пайплайна (#2722). Тест либо чинится, либо
# помечается xfail с причиной В КОДЕ, рядом с самим тестом.
#
# `-rs`: каждый пропуск печатает причину (#2745). Ожидание в этом лэйне —
# 13 пропусков, все объявлены в tests/skip_allowlist.txt; неучтённый
# пропуск роняет прогон через хук в tests/conftest.py.
run: uv run pytest -q -rs
build-backend:
runs-on: ubuntu-latest