[tradein] scraper_kit Group F1: fix yandex/cian newbuilding BrowserFetcher missing endpoint= (#2322) #2349

Closed
opened 2026-07-03 23:50:59 +00:00 by lekss361 · 1 comment
Owner

Родительский: #2309 (Group F). Реализует фикс из #2322 (уже полностью описан там — DoD, repro, затронутые файлы). Этот issue — просто исполнительная обёртка под зонтиком Group F, чтобы не размывать scope.

Scope

  • scraper_kit/providers/yandex/newbuilding.py + scraper_kit/providers/cian/newbuilding.py
  • BrowserFetcher(source=..., endpoint=config.browser_http_endpoint) вместо текущего без endpoint=
  • Regression-тест, доказывающий endpoint реально прокидывается (не просто "функция не падает")
  • После фикса: вернуться к app/api/v1/admin.py (issue #2305) и домигрировать scrape_yandex_newbuilding/scrape_cian_newbuilding на kit (сейчас намеренно на legacy из-за этого бага)

Не пересекается по файлам с F2 (#2330 fix) — можно параллельно

Refs #2322, #2309

Родительский: #2309 (Group F). Реализует фикс из #2322 (уже полностью описан там — DoD, repro, затронутые файлы). Этот issue — просто исполнительная обёртка под зонтиком Group F, чтобы не размывать scope. ## Scope - `scraper_kit/providers/yandex/newbuilding.py` + `scraper_kit/providers/cian/newbuilding.py` - `BrowserFetcher(source=..., endpoint=config.browser_http_endpoint)` вместо текущего без `endpoint=` - Regression-тест, доказывающий endpoint реально прокидывается (не просто "функция не падает") - После фикса: вернуться к `app/api/v1/admin.py` (issue #2305) и домигрировать `scrape_yandex_newbuilding`/`scrape_cian_newbuilding` на kit (сейчас намеренно на legacy из-за этого бага) ## Не пересекается по файлам с F2 (#2330 fix) — можно параллельно Refs #2322, #2309
lekss361 added the
bug
scope/backend
scrapers
tradein
labels 2026-07-04 10:23:49 +00:00
Author
Owner

Закрываю по итогам разбора трекера 16.08.2026

Вердикт: сделано кодом.

Фикс #2322 в kit применён у обоих провайдеров, config принимается и endpoint пробрасывается, есть выделенный регресс-тест.

Доказательство: tradein-mvp/packages/scraper-kit/src/scraper_kit/providers/yandex/newbuilding.py:189 и :354 — BrowserFetcher(source="yandex", endpoint=endpoint); cian/newbuilding.py:229 тот же фикс; регресс-тест tradein-mvp/backend/tests/test_scraper_kit_newbuilding_endpoint.py; коммит ccf71611 (#2349)

Независимая проверка. Вердикт отдельно проверялся вторым проходом, задачей которого было именно опровергнуть закрытие, а не подтвердить его:

Проверил своими глазами весь scope, включая пункт «после фикса домигрировать caller'ов», который в evidence не упомянут. (1) kit: providers/yandex/newbuilding.py:187-189 (fetch_jk) и :352-354 (resolve_yandex_jk_slug) берут config.browser_http_endpoint и передают BrowserFetcher(source="yandex", endpoint=endpoint); providers/cian/newbuilding.py:217 принимает config, :261-264 строит фетчер через build_browser_fetcher(config, "cian", ...), без config — graceful endpoint=None. (2) Регресс-тест backend/tests/test_scraper_kit_newbuilding_endpoint.py — 6 тестов со шпионом на конструктор BrowserFetcher (yandex fetch_jk, resolve_yandex_jk_slug, cian fetch_newbuilding × с config/без), проверяют именно значение kwargs endpoint, а не «не падает». (3) Догоняющая миграция callers сделана: app/api/v1/admin.py:1799-1812YandexNewbuildingScraper(config=RealScraperConfig()), :2019-2038 — kit'овый fetch_newbuilding(zhk_url, config=RealScraperConfig(), proxy_provider=...), комментарий в шапке файла (:20-28) фиксирует снятие временного исключения из #2305. (4) Код живёт на проде: docker exec tradein-backend python -c "…inspect.getsource…"endpoint=endpoint присутствует в установленном scraper_kit. Опровергнуть нечем.

Если что-то из перечисленного всё же живо — переоткройте задачу, разбор мог упустить частный случай.

## Закрываю по итогам разбора трекера 16.08.2026 **Вердикт:** сделано кодом. Фикс #2322 в kit применён у обоих провайдеров, config принимается и endpoint пробрасывается, есть выделенный регресс-тест. **Доказательство:** tradein-mvp/packages/scraper-kit/src/scraper_kit/providers/yandex/newbuilding.py:189 и :354 — BrowserFetcher(source="yandex", endpoint=endpoint); cian/newbuilding.py:229 тот же фикс; регресс-тест tradein-mvp/backend/tests/test_scraper_kit_newbuilding_endpoint.py; коммит ccf71611 (#2349) **Независимая проверка.** Вердикт отдельно проверялся вторым проходом, задачей которого было именно опровергнуть закрытие, а не подтвердить его: > Проверил своими глазами весь scope, включая пункт «после фикса домигрировать caller'ов», который в evidence не упомянут. (1) kit: `providers/yandex/newbuilding.py:187-189` (`fetch_jk`) и `:352-354` (`resolve_yandex_jk_slug`) берут `config.browser_http_endpoint` и передают `BrowserFetcher(source="yandex", endpoint=endpoint)`; `providers/cian/newbuilding.py:217` принимает `config`, `:261-264` строит фетчер через `build_browser_fetcher(config, "cian", ...)`, без config — graceful `endpoint=None`. (2) Регресс-тест `backend/tests/test_scraper_kit_newbuilding_endpoint.py` — 6 тестов со шпионом на конструктор BrowserFetcher (yandex fetch_jk, resolve_yandex_jk_slug, cian fetch_newbuilding × с config/без), проверяют именно значение kwargs endpoint, а не «не падает». (3) Догоняющая миграция callers сделана: `app/api/v1/admin.py:1799-1812` — `YandexNewbuildingScraper(config=RealScraperConfig())`, `:2019-2038` — kit'овый `fetch_newbuilding(zhk_url, config=RealScraperConfig(), proxy_provider=...)`, комментарий в шапке файла (:20-28) фиксирует снятие временного исключения из #2305. (4) Код живёт на проде: `docker exec tradein-backend python -c "…inspect.getsource…"` → `endpoint=endpoint` присутствует в установленном scraper_kit. Опровергнуть нечем. Если что-то из перечисленного всё же живо — переоткройте задачу, разбор мог упустить частный случай.
Sign in to join this conversation.
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#2349
No description provided.