fix(tradein): молча задеселекченный тест починен, deselect снят (#2722) #2729

Merged
bot-backend merged 1 commit from fix/2722-search-cache-deselect into main 2026-08-06 11:30:43 +00:00

1 commit

Author SHA1 Message Date
b8e33d981d fix(tradein): молча задеселекченный тест починен, deselect снят (#2722)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 8s
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
CI Trade-In / browser-tests (pull_request) Successful in 47s
CI Trade-In / frontend-checks (pull_request) Successful in 1m9s
CI Trade-In / backend-tests (pull_request) Successful in 3m12s
test_search_cache_hit был исключён из обоих пайплайнов с пояснением «падает
ТОЛЬКО в whole-suite ordering (401 vs 200; в изоляции проходит) — global-state
leak из другого test-модуля». Замер в полностью установленном окружении
опровергает обе половины: тест падает и в изоляции тоже — прогон одного этого
узла даёт 1 failed, тот же 401.

Причина не в порядке, а в самом тесте: он единственный в своём файле ходит по
HTTP и делает POST /api/v1/search БЕЗ заголовка X-Authenticated-User, а RBAC-гард
на запрос без него отвечает 401 — ровно тот инвариант, который отдельно
зафиксирован в tests/test_estimate_idor.py («No X-Authenticated-User header →
401»). Правка — один заголовок по идиоме самого репозитория; продуктовый код и
конфигурация авторизации не тронуты.

После этого deselect не нужен: полный прогон tradein-backend без единого
исключения даёт 3750 passed, 9 skipped, 0 failed.

Почему это часть #2722, а не отдельная уборка: задеселекченный тест — тот же
класс дефекта, что каталог вне пайплайна. Чек зелёный, знание о выключенной
проверке живёт в YAML, а не рядом с тестом, и следующий читатель наследует
неверное объяснение вместо симптома. В шаге pytest оставлено явное правило на
будущее: не deselect'ить молча — чинить или помечать xfail с причиной в коде.

Экземпляр того же deselect'а в deploy-tradein.yml не тронут: тот файл правит
открытый #2680. Расхождение безвредно — pre-merge гейт тест теперь гоняет.

Refs #2722
2026-08-06 16:23:33 +05:00