fix(tradein): починить 3 теста-регрессии из #1543 — разблокировать deploy gate #1548

Merged
lekss361 merged 1 commit from fix/week-review-test-regressions into main 2026-06-16 06:08:12 +00:00
Owner

🔴 Прод-деплой tradein заблокирован красным pytest-гейтом

После мержа #1543 («week-review автофиксы, 169 issue», commit 86e9ea29) job test в deploy-tradein.yml падает 3/1787 → deploy не доезжает, уже влитые SQL-миграции (108/109) не применяются. Регрессии от #1543, не от #1546/#1547.

FAILED test_backfill_wave2.py::test_cian_price_history_saves_changes — assert 0 == 2
FAILED test_matching.py::test_match_house_tier0_cadastr — StopIteration
FAILED test_sber_index.py::test_pull_sber_indices_error_per_series_continues — AttributeError: no 'rollback'

Все три — устаревшие тесты/моки (#1543 легитимно изменил поведение кода, тесты не обновили). Production-код НЕ тронут.

Фиксы (только тестовые файлы)

  1. test_cian_price_history_saves_changes#1543 добавил в cian_price_history.py два SELECT COUNT(*) (before/after) вокруг save. Тест отдавал один return_value на все execute → int(MagicMock)-int(MagicMock)=0. Заменил на side_effect=[listings, before=0, after=2].
  2. test_match_house_tier0_cadastr#1543 добавил _insert_alias(db,…) после cadastr_exact (houses.py:92) → +1 db.execute. Тест давал 3 side_effect, нужно 4 (advisory_lock → cadastr → _insert_alias → _upsert_house_source). Добавил None.
  3. test_pull_sber_indices_error_per_series_continues#1543 добавил await asyncio.to_thread(db.rollback) в error-recovery (sber_index.py:472, фикс #1345/#1348). Фейк _ExecuteCapture не имел rollback. Добавил def rollback(self) -> None: pass.

Верификация

Полный CI-гейт прогнан в реальном окружении (uv run pytest + те же 2 documented deselect):

1787 passed, 2 deselected

Три ранее-падавших — зелёные. ruff clean.

После мержа

Deploy gate станет зелёным → deploy применит накопленные миграции (108_clean_avito_addresses_v2, 108_merge_duplicate_houses, 109_asking_to_sold_ratio) — все провалидированы dry-run против прод-данных. houses 13456 → 8978.

## 🔴 Прод-деплой tradein заблокирован красным pytest-гейтом После мержа #1543 («week-review автофиксы, 169 issue», commit `86e9ea29`) job `test` в `deploy-tradein.yml` падает 3/1787 → **deploy не доезжает, уже влитые SQL-миграции (108/109) не применяются**. Регрессии от #1543, не от #1546/#1547. ``` FAILED test_backfill_wave2.py::test_cian_price_history_saves_changes — assert 0 == 2 FAILED test_matching.py::test_match_house_tier0_cadastr — StopIteration FAILED test_sber_index.py::test_pull_sber_indices_error_per_series_continues — AttributeError: no 'rollback' ``` Все три — **устаревшие тесты/моки** (#1543 легитимно изменил поведение кода, тесты не обновили). Production-код НЕ тронут. ## Фиксы (только тестовые файлы) 1. **`test_cian_price_history_saves_changes`** — #1543 добавил в `cian_price_history.py` два `SELECT COUNT(*)` (before/after) вокруг save. Тест отдавал один `return_value` на все execute → `int(MagicMock)-int(MagicMock)=0`. Заменил на `side_effect=[listings, before=0, after=2]`. 2. **`test_match_house_tier0_cadastr`** — #1543 добавил `_insert_alias(db,…)` после `cadastr_exact` (houses.py:92) → +1 `db.execute`. Тест давал 3 side_effect, нужно 4 (advisory_lock → cadastr → _insert_alias → _upsert_house_source). Добавил `None`. 3. **`test_pull_sber_indices_error_per_series_continues`** — #1543 добавил `await asyncio.to_thread(db.rollback)` в error-recovery (sber_index.py:472, фикс #1345/#1348). Фейк `_ExecuteCapture` не имел `rollback`. Добавил `def rollback(self) -> None: pass`. ## Верификация Полный CI-гейт прогнан в реальном окружении (`uv run pytest` + те же 2 documented deselect): ``` 1787 passed, 2 deselected ``` Три ранее-падавших — зелёные. ruff clean. ## После мержа Deploy gate станет зелёным → deploy применит накопленные миграции (`108_clean_avito_addresses_v2`, `108_merge_duplicate_houses`, `109_asking_to_sold_ratio`) — все провалидированы dry-run против прод-данных. houses 13456 → 8978.
lekss361 added 1 commit 2026-06-16 06:05:29 +00:00
fix(tradein): починить 3 теста-регрессии из #1543 (sber rollback mock, matching tier0, cian price history) — deploy gate green
All checks were successful
CI / changes (push) Successful in 7s
CI / backend-tests (push) Has been skipped
CI / frontend-tests (push) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / openapi-codegen-check (push) Has been skipped
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
55049046b1
lekss361 added the
bug
scope/backend
scope/qa
labels 2026-06-16 06:05:34 +00:00
lekss361 merged commit aab07845f6 into main 2026-06-16 06:08:12 +00:00
lekss361 deleted branch fix/week-review-test-regressions 2026-06-16 06:08:12 +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#1548
No description provided.