From 65b0c02b85c99dd2b71ddf93c6990c73f58291ad Mon Sep 17 00:00:00 2001 From: bot-backend Date: Wed, 17 Jun 2026 22:38:44 +0300 Subject: [PATCH] test(etl): fix stale assert in objective_backfill dry_run test (#1709) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- backend/tests/services/test_objective_backfill.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/tests/services/test_objective_backfill.py b/backend/tests/services/test_objective_backfill.py index 3da13880..99197115 100644 --- a/backend/tests/services/test_objective_backfill.py +++ b/backend/tests/services/test_objective_backfill.py @@ -77,7 +77,12 @@ def test_find_match_candidates_returns_candidates() -> None: def test_auto_apply_matches_dry_run_no_inserts() -> None: - """dry_run=True возвращает счётчики без обращения к БД (execute не вызывается).""" + """dry_run=True возвращает projected-счётчики без обращения к БД. + + auto_accepted = сколько кандидатов БЫЛО БЫ принято (preview), а не 0 — + смысл dry-run в admin-endpoint'е именно показать оператору объём перед + реальным insert. execute/commit при этом не вызываются. + """ mock_db = MagicMock() candidates = [ @@ -88,8 +93,9 @@ def test_auto_apply_matches_dry_run_no_inserts() -> None: result = auto_apply_matches(mock_db, candidates, dry_run=True) - assert result["auto_accepted"] == 0 + assert result["auto_accepted"] == 1 # projected: 1 кандидат >= AUTO_ACCEPT_THRESHOLD assert result["review_queue"] == 2 + assert result["skipped"] == 0 mock_db.execute.assert_not_called() mock_db.commit.assert_not_called()