perf(tests): заглушить форсайт-enqueue в analyze-тестах Site Finder #3502
1 changed files with 19 additions and 0 deletions
|
|
@ -59,3 +59,22 @@ def _stub_forecast_enqueue() -> Iterator[None]:
|
||||||
"""
|
"""
|
||||||
with patch("app.workers.tasks.forecast.forecast_site_finder_report.delay", MagicMock()):
|
with patch("app.workers.tasks.forecast.forecast_site_finder_report.delay", MagicMock()):
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def _fast_inline_fetch_wait(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||||
|
"""Схлопнуть inline-ожидание NSPD-фетча (#93 graceful fallback) до миллисекунд.
|
||||||
|
|
||||||
|
В ``analyze_parcel`` ветка «участка нет в БД» ждёт появления геометрии циклом
|
||||||
|
``sleep(_INLINE_FETCH_POLL_INTERVAL_S)`` до ``_INLINE_FETCH_WAIT_S`` (15с прод-
|
||||||
|
значение). В тестах фетч замокан и геометрия не появится никогда → каждый такой
|
||||||
|
тест честно спал 16с (``test_market_price_invalid_cad_returns_404``,
|
||||||
|
``test_recent_permits_invalid_cad_no_regression``).
|
||||||
|
|
||||||
|
Оставляем цикл РАБОЧИМ (несколько итераций по 10мс), а не выключаем его нулём:
|
||||||
|
тесты, проверяющие сам fast-path «строка появилась на N-м опросе», продолжают
|
||||||
|
видеть опросы. Тесты с собственным ``patch`` того же имени (напр.
|
||||||
|
``test_run_history_and_response_contract.py``) переопределяют это поверх.
|
||||||
|
"""
|
||||||
|
monkeypatch.setattr("app.api.v1.parcels._INLINE_FETCH_WAIT_S", 0.05)
|
||||||
|
monkeypatch.setattr("app.api.v1.parcels._INLINE_FETCH_POLL_INTERVAL_S", 0.01)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue