|
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 |
||
|---|---|---|
| .. | ||
| workflows | ||