test(etl): fix stale assert in objective_backfill dry_run test (#1709 systemic CI red) #1721

Merged
lekss361 merged 1 commit from fix/objective-backfill-test-1709 into main 2026-06-17 19:40:01 +00:00
Owner

Summary

  • backend/tests/services/test_objective_backfill.py: правлю устаревшую ассерцию в test_auto_apply_matches_dry_run_no_inserts (auto_accepted == 0== 1, + assert skipped == 0, обновлён docstring).

Почему (системный красный CI, #1709)

backend-tests падал на КАЖДОМ backend-PR (#1706, #1705, #1687, #1713 — идентично) на этом одном тесте: assert 1 == 0.

Root cause (через git log -p): аудит-коммит 14f3ef20 (#1660) намеренно изменил auto_apply_matchesdry_run теперь возвращает projected-счётчики:

-        return {"auto_accepted": 0, "review_queue": len(review), "skipped": 0}
+        return {"auto_accepted": len(auto), "review_queue": len(review), "skipped": 0}

но тест в том же коммите не тронули → он остался с == 0.

Это устаревший тест, а не баг функции:

  • прод-вызов app/api/v1/admin_etl.py описывает dry_run как «Preview без insertions» — смысл preview именно показать оператору, сколько матчей было бы принято; рапорт auto_accepted: 0 бессмыслен;
  • dry_run делает ранний return до любого db.execute/commitexecute.assert_not_called()/commit.assert_not_called() остаются валидны, отдельного бага нет.

Кандидаты теста: 0.95 (≥ AUTO_ACCEPT_THRESHOLD 0.85 → auto=1), 0.70/0.65 (≥ REVIEW_THRESHOLD 0.6 → review=2), skipped=0. Сверено с кодом на текущем main.

Test plan

  • Полный сьют как в CI (uv run pytest -q --ignore=tests/smoke, CI env): 3277 passed, 49 skipped, 0 failed.
  • ruff + ruff-format: passed.
  • После merge: backend-tests на новых PR зелёный.

Refs #1709

## Summary - `backend/tests/services/test_objective_backfill.py`: правлю устаревшую ассерцию в `test_auto_apply_matches_dry_run_no_inserts` (`auto_accepted == 0` → `== 1`, + `assert skipped == 0`, обновлён docstring). ## Почему (системный красный CI, #1709) `backend-tests` падал на **КАЖДОМ** backend-PR (#1706, #1705, #1687, #1713 — идентично) на этом одном тесте: `assert 1 == 0`. Root cause (через `git log -p`): аудит-коммит `14f3ef20` (#1660) **намеренно** изменил `auto_apply_matches` — `dry_run` теперь возвращает projected-счётчики: ```diff - return {"auto_accepted": 0, "review_queue": len(review), "skipped": 0} + return {"auto_accepted": len(auto), "review_queue": len(review), "skipped": 0} ``` но тест в том же коммите не тронули → он остался с `== 0`. **Это устаревший тест, а не баг функции:** - прод-вызов `app/api/v1/admin_etl.py` описывает `dry_run` как «Preview без insertions» — смысл preview именно показать оператору, сколько матчей *было бы* принято; рапорт `auto_accepted: 0` бессмыслен; - `dry_run` делает ранний `return` до любого `db.execute`/`commit` → `execute.assert_not_called()`/`commit.assert_not_called()` остаются валидны, отдельного бага нет. Кандидаты теста: 0.95 (≥ `AUTO_ACCEPT_THRESHOLD` 0.85 → auto=1), 0.70/0.65 (≥ `REVIEW_THRESHOLD` 0.6 → review=2), skipped=0. Сверено с кодом на текущем main. ## Test plan - [x] Полный сьют как в CI (`uv run pytest -q --ignore=tests/smoke`, CI env): **3277 passed, 49 skipped, 0 failed**. - [x] ruff + ruff-format: passed. - [ ] После merge: `backend-tests` на новых PR зелёный. Refs #1709
lekss361 added 1 commit 2026-06-17 19:39:13 +00:00
test(etl): fix stale assert in objective_backfill dry_run test (#1709)
All checks were successful
CI / changes (pull_request) Successful in 12s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m1s
CI / backend-tests (pull_request) Successful in 8m56s
65b0c02b85
backend-tests падал СИСТЕМНО на каждом PR на
test_auto_apply_matches_dry_run_no_inserts (assert 1 == 0).

Root cause: аудит-коммит 14f3ef20 (#1660) намеренно изменил
auto_apply_matches — dry_run теперь возвращает projected-счётчики
(auto_accepted=len(auto), сколько БЫ приняли — смысл preview в
admin_etl endpoint'е), но тест в том же коммите не обновили, он
остался с assert auto_accepted == 0.

Функция корректна (dry_run делает ранний return до db.execute/commit —
execute.assert_not_called() валиден). Правлю устаревшую ассерцию:
== 0 → == 1 (кандидат 0.95 >= AUTO_ACCEPT_THRESHOLD 0.85), + assert skipped == 0.

Полный сьют: 3277 passed, 0 failed.

Refs #1709
lekss361 merged commit f6b3aad03d into main 2026-06-17 19:40:01 +00:00
lekss361 deleted branch fix/objective-backfill-test-1709 2026-06-17 19:40:01 +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#1721
No description provided.