From 8f57d6827cc07446547fb1a60e1df99efc25e8ba Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sat, 12 Sep 2026 17:08:02 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20=D1=83=D0=B1=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D1=80=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=83=D0=B7=D1=8B=20=D0=B8=D0=B7=20tradein-=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20(wave2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 Claude-Session: https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG --- .../backend/tests/test_3398_estimator_valuations_proxy_pool.py | 3 +++ tradein-mvp/backend/tests/test_alerts_become_events.py | 2 +- tradein-mvp/backend/tests/test_backfill_wave2.py | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tradein-mvp/backend/tests/test_3398_estimator_valuations_proxy_pool.py b/tradein-mvp/backend/tests/test_3398_estimator_valuations_proxy_pool.py index 6c019c49..d1edecb2 100644 --- a/tradein-mvp/backend/tests/test_3398_estimator_valuations_proxy_pool.py +++ b/tradein-mvp/backend/tests/test_3398_estimator_valuations_proxy_pool.py @@ -342,6 +342,9 @@ def _yandex_with_pool(monkeypatch: pytest.MonkeyPatch, *, get: Any) -> _Counting patch( "scraper_kit.providers.yandex.valuation._CurlCffiSession", _fake_curl_session(get=get) ), + # На успехе fetch_house_history зовёт настоящий anti-ban sleep_between_requests + # (5с jitter) — тесту нужен только факт release-lease, не сама пауза. + patch("scraper_kit.base.asyncio.sleep", new_callable=AsyncMock), ): _call_yandex(_db_cache_miss()) return provider diff --git a/tradein-mvp/backend/tests/test_alerts_become_events.py b/tradein-mvp/backend/tests/test_alerts_become_events.py index 82b0b0f7..c4446e18 100644 --- a/tradein-mvp/backend/tests/test_alerts_become_events.py +++ b/tradein-mvp/backend/tests/test_alerts_become_events.py @@ -70,7 +70,7 @@ def glitchtip_events() -> Iterator[list[dict[str, Any]]]: yield events finally: # Иначе на каждый тест остаётся фоновый поток транспорта. - client.close() + client.close(timeout=0) def event_texts(events: list[dict[str, Any]]) -> list[str]: diff --git a/tradein-mvp/backend/tests/test_backfill_wave2.py b/tradein-mvp/backend/tests/test_backfill_wave2.py index 178986ab..e91c9889 100644 --- a/tradein-mvp/backend/tests/test_backfill_wave2.py +++ b/tradein-mvp/backend/tests/test_backfill_wave2.py @@ -215,7 +215,8 @@ async def test_backfill_yandex_addresses_error_on_non_200(): return_value=mock_session, ), ): - result = await backfill_yandex_addresses(MagicMock(), limit=10) + # request_delay_sec=0: реальный анти-бот sleep(3с) тут не нужен, 1 item в батче. + result = await backfill_yandex_addresses(MagicMock(), limit=10, request_delay_sec=0) assert result.errors == 1 assert result.saved == 0 -- 2.45.3