fix(tests): убрать реальные паузы из tradein-тестов (wave2) #3503

Merged
lekss361 merged 1 commit from perf/3471-tradein-tests-wave2 into main 2026-09-12 14:15:22 +00:00
Collaborator

Что сделано

Убраны реальные ожидания времени/таймаута из трёх тестовых файлов Trade-In. Ассерты не ослаблены, ничего не удалено.

Тест Было Стало Источник паузы
test_alerts_become_events.py (10 тестов) ~2.05с каждый (~20с) ~0.03с каждый sentry_sdk default shutdown_timeout=2.0 в client.close() (finally контекст-менеджера glitchtip_events())
test_3398_estimator_valuations_proxy_pool.py::test_yandex_lease_released_once_on_success 6.05с ~0.02с Настоящий anti-ban sleep_between_requests() (jitter вокруг request_delay_sec=5.0) на успешном fetch_house_history
test_backfill_wave2.py::test_backfill_yandex_addresses_error_on_non_200 3.02с ~0.04с Дефолтный анти-бот request_delay_sec=3.0 в backfill_yandex_addresses

Фиксы:

  • client.close(timeout=0) вместо client.close().
  • Мокнут scraper_kit.base.asyncio.sleep в helper'е _yandex_with_pool — lease-ассерты (acquired/released/health) не тронуты.
  • Явно передан request_delay_sec=0 в вызов backfill_yandex_addresses.

Что не потребовалось

Цели #2 (4 теста по ~5.01с с общим таймаутом в test_2698_imv_sidecar_wiring.py / test_house_imv_backfill_browser_flag.py / test_scraper_kit_group_c_backfill_kit_parity.py) и #3 (test_3033_avito_native_secondary_filter.py, 7.82с/5.72с) уже были устранены на main до этой ветки — там уже стоит request_delay_sec=0 с комментариями. Замер подтвердил: все эти тесты сейчас <1с, регрессий нет.

Не тронуто

  • test_auth_api.py — bcrypt cost=12 + намеренный throttle (security-параметр).
  • test_estimator_event_loop_2207.py — реальный sleep(0.3) — сам предмет теста.
  • test_glitchtip_webhook.py, test_2924_yandex_resolve_tried_at.py — уже починены в PR #3500.

Verify

Все затронутые + смежные файлы прогнаны локально (../.venv/Scripts/python.exe -m pytest ... --durations=20 -p no:randomly): 74 теста, все зелёные, максимальная длительность 1.05с (несвязанный сетевой retry-таймаут).

🤖 Generated with Claude Code

https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG

## Что сделано Убраны реальные ожидания времени/таймаута из трёх тестовых файлов Trade-In. Ассерты не ослаблены, ничего не удалено. | Тест | Было | Стало | Источник паузы | |---|---|---|---| | `test_alerts_become_events.py` (10 тестов) | ~2.05с каждый (~20с) | ~0.03с каждый | `sentry_sdk` default `shutdown_timeout=2.0` в `client.close()` (`finally` контекст-менеджера `glitchtip_events()`) | | `test_3398_estimator_valuations_proxy_pool.py::test_yandex_lease_released_once_on_success` | 6.05с | ~0.02с | Настоящий anti-ban `sleep_between_requests()` (jitter вокруг `request_delay_sec=5.0`) на успешном `fetch_house_history` | | `test_backfill_wave2.py::test_backfill_yandex_addresses_error_on_non_200` | 3.02с | ~0.04с | Дефолтный анти-бот `request_delay_sec=3.0` в `backfill_yandex_addresses` | Фиксы: - `client.close(timeout=0)` вместо `client.close()`. - Мокнут `scraper_kit.base.asyncio.sleep` в helper'е `_yandex_with_pool` — lease-ассерты (acquired/released/health) не тронуты. - Явно передан `request_delay_sec=0` в вызов `backfill_yandex_addresses`. ## Что не потребовалось Цели #2 (4 теста по ~5.01с с общим таймаутом в `test_2698_imv_sidecar_wiring.py` / `test_house_imv_backfill_browser_flag.py` / `test_scraper_kit_group_c_backfill_kit_parity.py`) и #3 (`test_3033_avito_native_secondary_filter.py`, 7.82с/5.72с) уже были устранены на `main` до этой ветки — там уже стоит `request_delay_sec=0` с комментариями. Замер подтвердил: все эти тесты сейчас <1с, регрессий нет. ## Не тронуто - `test_auth_api.py` — bcrypt cost=12 + намеренный throttle (security-параметр). - `test_estimator_event_loop_2207.py` — реальный `sleep(0.3)` — сам предмет теста. - `test_glitchtip_webhook.py`, `test_2924_yandex_resolve_tried_at.py` — уже починены в PR #3500. ## Verify Все затронутые + смежные файлы прогнаны локально (`../.venv/Scripts/python.exe -m pytest ... --durations=20 -p no:randomly`): 74 теста, все зелёные, максимальная длительность 1.05с (несвязанный сетевой retry-таймаут). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
bot-backend added 1 commit 2026-09-12 14:09:54 +00:00
fix(tests): убрать реальные паузы из tradein-тестов (wave2)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
CI / changes (pull_request) Successful in 13s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m45s
8f57d6827c
- test_alerts_become_events.py: glitchtip_events() ждал sentry_sdk
  default shutdown_timeout=2.0с на client.close() в finally — 10 тестов
  по ~2.05с. Fix: client.close(timeout=0).
- test_3398_estimator_valuations_proxy_pool.py::test_yandex_lease_released_once_on_success:
  успешный fetch_house_history зовёт настоящий anti-ban
  sleep_between_requests() (jitter вокруг request_delay_sec=5.0) —
  6.05с. Мокнут scraper_kit.base.asyncio.sleep, lease-assert не тронут.
- test_backfill_wave2.py::test_backfill_yandex_addresses_error_on_non_200:
  дефолтный анти-бот request_delay_sec=3.0 в backfill_yandex_addresses —
  3.02с. Передан request_delay_sec=0 явно.

Цели #2 (четыре теста по 5.01с, общий таймаут) и #3 (test_3033, два
теста 7.82с/5.72с) уже были устранены в main до этой ветки —
request_delay_sec=0 там уже проставлен, замер подтверждён (<1с каждый).

Не тронуты: test_auth_api.py (bcrypt cost=12 + намеренный throttle),
test_estimator_event_loop_2207.py (реальный sleep(0.3) — предмет теста).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG
lekss361 merged commit 162e101636 into main 2026-09-12 14:15:22 +00:00
lekss361 deleted branch perf/3471-tradein-tests-wave2 2026-09-12 14:15:23 +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#3503
No description provided.