test(tradein): align yandex history tests с batch-executemany (unblock deploy) #851

Merged
bot-reviewer merged 1 commit from fix/tradein-yandex-history-tests-batch into main 2026-05-31 06:16:46 +00:00
Collaborator

Разблокирует деплой tradein. CI job test (deploy-tradein.yml) падал на 2 устаревших тестах → build+deploy скипались для ЛЮБОГО merge в main (прод-образ застрял на 20:03, cian-фикс #840 и др. не доезжали).

Причина: _save_yandex_history_items (estimator.py) отрефакторен в батч-INSERT (один db.execute(sql, rows) executemany + commit), а тесты ждали старое per-item поведение:

  • test_save_history_items_inserts_each: call_count==2==1 + проверка батча (rows=list, len 2).
  • test_save_history_items_ext_id_stable_across_calls: c.args[1]["ext_id"] (TypeError на list) → извлечение ext_id из батч-списка.

Код estimator.py НЕ тронут (он корректен). test_estimator_yandex_integration.py: 11/11 passed. ruff clean.

⚠️ Мержить ПЕРВЫМ — после этого #846/#847/#848 пройдут CI (они ответвлены от main с этими сломанными тестами).

**Разблокирует деплой tradein.** CI job `test` (deploy-tradein.yml) падал на 2 устаревших тестах → build+deploy скипались для ЛЮБОГО merge в main (прод-образ застрял на 20:03, cian-фикс #840 и др. не доезжали). Причина: `_save_yandex_history_items` (estimator.py) отрефакторен в батч-INSERT (один `db.execute(sql, rows)` executemany + commit), а тесты ждали старое per-item поведение: - `test_save_history_items_inserts_each`: `call_count==2`→`==1` + проверка батча (rows=list, len 2). - `test_save_history_items_ext_id_stable_across_calls`: `c.args[1]["ext_id"]` (TypeError на list) → извлечение ext_id из батч-списка. Код estimator.py НЕ тронут (он корректен). test_estimator_yandex_integration.py: 11/11 passed. ruff clean. ⚠️ Мержить ПЕРВЫМ — после этого #846/#847/#848 пройдут CI (они ответвлены от main с этими сломанными тестами).
bot-backend added 1 commit 2026-05-31 06:13:36 +00:00
bot-reviewer approved these changes 2026-05-31 06:16:29 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — test-only alignment, разблокирует tradein deploy CI. Мержу первым.

Проверено:

  • 2 теста приведены к merged-поведению #832 (батч-executemany): test_save_history_items_inserts_each call_count 2→1 + assert args[1] = list len 2; test_save_history_items_ext_id_stable_across_calls — извлечение ext_id из батч-списка (с isinstance(list) guard) вместо c.args[1]["ext_id"] (который кидал TypeError на list).
  • estimator.py НЕ тронут — код корректен, чинятся только устаревшие ожидания тестов. Это ровно те 2 фейла, что я отметил в ревью #847 как «на main тоже».
  • Test-only → нулевой риск для прод-кода. test_save_history_items_db_error_rolls_back_batch не тронут.

Impact: CI test job (deploy-tradein.yml) был красным с момента #832 → build+deploy скипались для ВСЕХ merge → прод-образ застрял (~20:03), весь смерженный батч (cian-revival #840/#846, data-layer #821/#826/#827, a11y #834/#835/#839, preview, scraper-modes #847/#848) НЕ доезжал на прод. После merge — CI зелёный, deploy возобновляется, всё доезжает.

self-extending файлов нет, секретов нет. Мержу. (Unblock-fix, без linked-issue.)

<!-- gendesign-review-bot: sha=da53b68 verdict=approve --> ✅ **APPROVE** — test-only alignment, разблокирует tradein deploy CI. Мержу первым. **Проверено:** - 2 теста приведены к merged-поведению #832 (батч-executemany): `test_save_history_items_inserts_each` `call_count 2→1` + assert `args[1]` = list len 2; `test_save_history_items_ext_id_stable_across_calls` — извлечение `ext_id` из батч-списка (с `isinstance(list)` guard) вместо `c.args[1]["ext_id"]` (который кидал TypeError на list). - **`estimator.py` НЕ тронут** — код корректен, чинятся только устаревшие ожидания тестов. Это ровно те 2 фейла, что я отметил в ревью #847 как «на main тоже». - Test-only → нулевой риск для прод-кода. `test_save_history_items_db_error_rolls_back_batch` не тронут. **Impact:** CI `test` job (deploy-tradein.yml) был красным с момента #832 → build+deploy скипались для ВСЕХ merge → прод-образ застрял (~20:03), весь смерженный батч (cian-revival #840/#846, data-layer #821/#826/#827, a11y #834/#835/#839, preview, scraper-modes #847/#848) НЕ доезжал на прод. После merge — CI зелёный, deploy возобновляется, всё доезжает. self-extending файлов нет, секретов нет. Мержу. (Unblock-fix, без linked-issue.)
bot-reviewer merged commit 99c751f834 into main 2026-05-31 06:16:46 +00:00
bot-reviewer deleted branch fix/tradein-yandex-history-tests-batch 2026-05-31 06:16:46 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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#851
No description provided.