fix(tradein/avito): браузерный бэкфилл ходил мимо пула прокси #3145

Merged
lekss361 merged 2 commits from fix/3045-browser-mode-no-proxy-lease into main 2026-08-27 13:22:05 +00:00
Showing only changes of commit c1918b404d - Show all commits

View file

@ -777,10 +777,23 @@ async def test_backfill_use_curl_false_creates_browser_fetcher() -> None:
)
# BrowserFetcher должен быть создан (source="avito", endpoint из settings — #2310
# kit BrowserFetcher требует endpoint= обязательным keyword-only параметром)
mock_bf_cls.assert_called_once_with(
source="avito", endpoint=fake_settings.browser_http_endpoint
)
# kit BrowserFetcher требует endpoint= обязательным keyword-only параметром).
#
# Проверяем ВХОЖДЕНИЕ аргументов, а не полное равенство вызова. Прежняя
# форма `assert_called_once_with(source=..., endpoint=...)` требовала, чтобы
# других аргументов НЕ БЫЛО, и тем самым закрепляла дефект: именно
# отсутствие проводки пула (#3045) уводило браузерный прогон мимо прокси —
# 5 блоков из 5 попыток при полностью здоровом пуле. Проводка проверяется
# отдельно ниже.
mock_bf_cls.assert_called_once()
_bf_kwargs = mock_bf_cls.call_args.kwargs
assert _bf_kwargs["source"] == "avito"
assert _bf_kwargs["endpoint"] == fake_settings.browser_http_endpoint
# #3045: без этих трёх фетчер не кладёт "proxy" в тело POST /fetch, и
# сайдкар уходит на свой env-прокси мимо пула (proxy_lease_id=None).
assert _bf_kwargs.get("proxy_provider") is not None, "пул не подключён"
assert "use_pool" in _bf_kwargs, "флаг пула не доезжает до фетчера"
assert "environment" in _bf_kwargs, "без него отказ «пул пуст» мёртв (#2616)"
# fetch_detail вызван с browser_fetcher установленным (не None)
assert mock_fetch.call_count == 1
_, kwargs = mock_fetch.call_args