refactor(tradein/tasks): cian_history_backfill valuation+newbuilding на kit + config= (#2397 Part D2) #2411

Merged
lekss361 merged 1 commit from refactor/tradein-partD2-cian-history-backfill-kit into main 2026-07-04 12:29:33 +00:00
Owner

Summary

Umbrella #2397 Part D2 (эпик #2277). Мигрирует cian_history_backfill.py с legacy app.services.scrapers.{cian_valuation,cian_newbuilding} на kit. Прод-nightly задача (02:00-05:00 UTC, do_houses=True дефолт — houses-блок исполняется каждую ночь).

Изменения

  • cian_valuation (module-top): импорт → scraper_kit.providers.cian.valuation; call-site estimate_via_cian_valuation(db, config=RealScraperConfig(), ...) — mandatory kwarg (без него TypeError, self-revealing). Зеркалит прод-precedent estimator.py:3148-3161.
  • cian_newbuilding (houses-блок, lazy import): → scraper_kit.providers.cian.newbuilding; fetch_newbuilding(zhk_url, config=RealScraperConfig()) (без config → AssertionError в BrowserFetcher.__aenter__). save_newbuilding_enrichment — sync, call-site уже был без await (без изменений).
  • Добавлен from app.services.scraper_adapters import RealScraperConfig. Стейл-комментарии «stays legacy» переписаны.

Regression-тесты (test_scraper_kit_group_c_backfill_kit_parity.py)

  • test_cian_history_backfill_houses_fetch_newbuilding_gets_config_endpoint — endpoint протянут через config == settings.browser_http_endpoint.
  • test_cian_history_backfill_valuations_estimate_gets_config — non-None RealScraperConfig передан.

Test plan

  • Touched test file: 9 passed (7 + 2 новых).
  • Full suite: 2813 passed, 6 skipped, 1 failed (#2208 flake, unrelated, воспроизводится в изоляции).
  • Import-sanity → OK. ruff check clean. Grep — 0 legacy импортов в файле.

Refs #2397, #2277

## Summary Umbrella #2397 **Part D2** (эпик #2277). Мигрирует `cian_history_backfill.py` с legacy `app.services.scrapers.{cian_valuation,cian_newbuilding}` на kit. Прод-nightly задача (02:00-05:00 UTC, `do_houses=True` дефолт — houses-блок исполняется каждую ночь). ## Изменения - **cian_valuation** (module-top): импорт → `scraper_kit.providers.cian.valuation`; call-site `estimate_via_cian_valuation(db, config=RealScraperConfig(), ...)` — mandatory kwarg (без него `TypeError`, self-revealing). Зеркалит прод-precedent `estimator.py:3148-3161`. - **cian_newbuilding** (houses-блок, lazy import): → `scraper_kit.providers.cian.newbuilding`; `fetch_newbuilding(zhk_url, config=RealScraperConfig())` (без config → `AssertionError` в `BrowserFetcher.__aenter__`). `save_newbuilding_enrichment` — sync, call-site уже был без `await` (без изменений). - Добавлен `from app.services.scraper_adapters import RealScraperConfig`. Стейл-комментарии «stays legacy» переписаны. ## Regression-тесты (`test_scraper_kit_group_c_backfill_kit_parity.py`) - `test_cian_history_backfill_houses_fetch_newbuilding_gets_config_endpoint` — endpoint протянут через config == `settings.browser_http_endpoint`. - `test_cian_history_backfill_valuations_estimate_gets_config` — non-None `RealScraperConfig` передан. ## Test plan - [x] Touched test file: 9 passed (7 + 2 новых). - [x] Full suite: 2813 passed, 6 skipped, 1 failed (#2208 flake, unrelated, воспроизводится в изоляции). - [x] Import-sanity → OK. `ruff check` clean. Grep — 0 legacy импортов в файле. Refs #2397, #2277
lekss361 added 1 commit 2026-07-04 12:18:17 +00:00
refactor(tradein/tasks): cian_history_backfill valuation+newbuilding на kit + config= (#2397 Part D2)
All checks were successful
CI / changes (pull_request) Successful in 8s
CI Trade-In / changes (pull_request) Successful in 9s
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 1m4s
f0c7ac4972
lekss361 merged commit b28aefec16 into main 2026-07-04 12:29:33 +00:00
lekss361 deleted branch refactor/tradein-partD2-cian-history-backfill-kit 2026-07-04 12:29:34 +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#2411
No description provided.