fix(tests): починить и вычистить проверки, которые не исполнялись ни разу #2744

Merged
bot-backend merged 1 commit from chore/silently-skipped-tests into main 2026-08-06 16:57:29 +00:00
Collaborator

Summary

Ревизия ВСЕХ механизмов пропуска в репозитории (см. отчёт в задаче). Этот PR — только починка тестов, без правок пайплайна (они отдельным PR).

Найдено и исправлено 4 места, где проверка не исполнялась ни разу:

  1. test_gar_flats_loader::test_upsert_and_canon_match_populates_gar_flat_count — падал ДО первого утверждения (text() читает (?:Россия|...) как bind-параметр :Россия). Живёт с 2026-06-28, под skipif «нет БД» никто не видел. Перевод на exec_driver_sql23 passed против реальной Postgres.
  2. requires_scrape_cadastreskipif с причиной «нужно смержить PR #170»; PR давно в main, условие не срабатывало никогда. Мёртвый гард на 3 тестах снят.
  3. 4 теста X-Admin-Token — проверяли гейт, удалённый в #437; verify_admin_token в app/core/deps.py уже никем не импортируется. Удалены с обоснованием (замену покрывает tests/test_rbac.py, 24 теста).
  4. test_ekb_ppt_tep_parser — образец искался по абсолютному C:/Users/user/source/repos/...: 6 тестов были не «пропущены по среде», а мертвы. Путь стал repo-relative, причина пропуска печатает ожидаемый путь.

Test plan

  • tradein-mvp/backend: полный сьют против поднятой Postgres со схемой из backend/data/sql/ (219 миграций) — 3867 passed, 1 skipped (остался только real-render PDF без native-libs)
  • backend: полный сьют в mock-lane конфигурации CI — регрессий нет
  • ruff check + ruff format --check на изменённых файлах

Refs #2722 #2729 #2740

## Summary Ревизия ВСЕХ механизмов пропуска в репозитории (см. отчёт в задаче). Этот PR — только починка тестов, без правок пайплайна (они отдельным PR). Найдено и исправлено 4 места, где проверка не исполнялась ни разу: 1. **`test_gar_flats_loader::test_upsert_and_canon_match_populates_gar_flat_count`** — падал ДО первого утверждения (`text()` читает `(?:Россия|...)` как bind-параметр `:Россия`). Живёт с 2026-06-28, под `skipif` «нет БД» никто не видел. Перевод на `exec_driver_sql` → **23 passed** против реальной Postgres. 2. **`requires_scrape_cadastre`** — `skipif` с причиной «нужно смержить PR #170»; PR давно в main, условие не срабатывало никогда. Мёртвый гард на 3 тестах снят. 3. **4 теста X-Admin-Token** — проверяли гейт, удалённый в #437; `verify_admin_token` в `app/core/deps.py` уже никем не импортируется. Удалены с обоснованием (замену покрывает `tests/test_rbac.py`, 24 теста). 4. **`test_ekb_ppt_tep_parser`** — образец искался по абсолютному `C:/Users/user/source/repos/...`: 6 тестов были не «пропущены по среде», а мертвы. Путь стал repo-relative, причина пропуска печатает ожидаемый путь. ## Test plan - [x] `tradein-mvp/backend`: полный сьют против поднятой Postgres со схемой из `backend/data/sql/` (219 миграций) — **3867 passed, 1 skipped** (остался только real-render PDF без native-libs) - [x] `backend`: полный сьют в mock-lane конфигурации CI — регрессий нет - [x] `ruff check` + `ruff format --check` на изменённых файлах Refs #2722 #2729 #2740
bot-backend added 1 commit 2026-08-06 16:36:48 +00:00
fix(tests): починить и вычистить проверки, которые не исполнялись ни разу
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
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 2m5s
CI Trade-In / backend-tests (pull_request) Successful in 3m16s
CI / backend-tests (pull_request) Successful in 15m43s
334ac2a315
Три инцидента за сутки (#2722, #2729, #2740) — один класс дефекта: проверка,
которая тихо не исполняется, со временем перестаёт быть верной. Ревизия всех
механизмов пропуска в репозитории нашла ещё четыре таких места.

1. test_gar_flats_loader::test_upsert_and_canon_match_populates_gar_flat_count
   падал ДО первого утверждения: `text()` читает `(?:Россия|...)` в regexp как
   bind-параметр `:Россия` и бросает InvalidRequestError. Тест жил с 2026-06-28
   под skipif «нет БД» и с реальной Postgres не запускался никогда. Перевод на
   exec_driver_sql (драйверный путь не парсит bind-имена) — 23 passed.

2. requires_scrape_cadastre — skipif с причиной «нужно смержить PR #170».
   PR #170 давно в main, модуль на месте, условие не срабатывало никогда:
   мёртвый гард на трёх тестах. Снят.

3. Четыре теста X-Admin-Token (test_admin_cadastre, test_admin_ekburg_permits,
   test_admin_weight_profiles ×2) проверяли гейт, удалённый в #437: endpoint'ы
   не несут verify_admin_token, сам helper в app/core/deps.py уже никем не
   импортируется. 401 недостижим без реверта security-решения — тесты удалены,
   а не «пропущены навсегда». Замена покрыта tests/test_rbac.py (24 теста).

4. test_ekb_ppt_tep_parser искал образец по абсолютному C:/Users/user/... —
   условие пропуска не выполнялось ни на одной машине, кроме одного дев-бокса,
   т.е. 6 тестов были не пропущены, а мертвы. Путь стал repo-relative, причина
   пропуска печатает конкретный ожидаемый путь.

Тесты не удалялись ради зелени: удалены только те, чьё проверяемое поведение
намеренно убрано из продукта, с указанием, что покрывает его замену.
bot-backend merged commit a091da1aa8 into main 2026-08-06 16:57:29 +00:00
bot-backend deleted branch chore/silently-skipped-tests 2026-08-06 16:57:29 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2744
No description provided.