All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / 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 47s
Удаляет весь `app/services/scrapers/` (16 файлов, ~7100 строк) — Part D (D1-D5) убрал всех внешних вызывающих, 0 runtime importers подтверждено grep'ом на main. Заодно: - удалены 7 осиротевших локальных probe/sweep-скриптов (tradein-mvp/scripts/), импортировавших уже-удалённые или удаляемые сейчас legacy-модули - тест-хирургия по 65+ файлам: DELETE прямых legacy-юнит-тестов, RETARGET тестов, тестирующих ещё живую бизнес-логику (переключены на scraper_kit.* эквиваленты, включая quality-gate #781/#753/#754/#755/#773/#740), partial-delete golden-parity тестов, потерявших legacy-оракл - kit save_listings/AvitoScraper/etc. требуют инжектируемые matcher/config — ретаргетированные тесты обновлены под новую сигнатуру (RealScraperConfig(), MagicMock HouseMatcher, region_code=66) Полный pytest suite зелёный (2255 passed, 6 skipped) кроме известного флейка #2208 (test_search_cache_hit, не связан со scrapers).
48 lines
2.5 KiB
Python
48 lines
2.5 KiB
Python
"""Smoke: each Yandex scraper instance reads request_delay_sec from scraper_settings.
|
||
|
||
Легаси `app.services.scrapers.yandex_detail` / `yandex_valuation` удалены (#2277
|
||
финальный шаг scraper_kit-миграции). `yandex_realty` удалён (#2397 Part E2, 0
|
||
runtime-импортёров) — его delay-wiring тест убран (kit `YandexRealtyScraper`
|
||
delay-provider wiring покрыт `test_kit_serp_proxy_pool.py`). `yandex_newbuilding`
|
||
удалён (#2397 финальный шаг E) — переведён на kit-эквивалент, который тоже
|
||
использует инжектируемый `delay_provider=` (strangler DI, #2133) вместо прямого
|
||
импорта `get_scraper_delay`.
|
||
`yandex_detail`/`yandex_valuation` переведены на kit-эквиваленты, которые используют
|
||
инжектируемый `delay_provider=` (strangler DI, #2133) вместо прямого импорта
|
||
`get_scraper_delay` — тест адаптирован под реальный контракт kit-класса.
|
||
"""
|
||
|
||
from types import SimpleNamespace
|
||
|
||
from scraper_kit.providers.yandex.detail import YandexDetailScraper
|
||
from scraper_kit.providers.yandex.newbuilding import YandexNewbuildingScraper
|
||
from scraper_kit.providers.yandex.valuation import YandexValuationScraper
|
||
|
||
_KIT_CONFIG = SimpleNamespace(
|
||
scraper_proxy_url=None,
|
||
yandex_proxy_rotate_url=None,
|
||
avito_proxy_rotate_url=None,
|
||
)
|
||
|
||
|
||
def test_yandex_detail_picks_up_delay():
|
||
"""Kit YandexDetailScraper: delay_provider callable вызывается с self.name."""
|
||
s = YandexDetailScraper(delay_provider=lambda _name: 9.5)
|
||
assert s.request_delay_sec == 9.5
|
||
|
||
|
||
def test_yandex_newbuilding_picks_up_delay():
|
||
"""Kit YandexNewbuildingScraper: delay_provider callable вызывается с self.name."""
|
||
s = YandexNewbuildingScraper(delay_provider=lambda _name: 9.5)
|
||
assert s.request_delay_sec == 9.5
|
||
|
||
|
||
def test_yandex_valuation_picks_up_delay():
|
||
"""Kit YandexValuationScraper: delay_provider callable вызывается с self.name.
|
||
|
||
Mandatory-config footgun и полное покрытие delay_provider wiring уже проверены
|
||
в tests/scrapers/test_yandex_valuation_kit_migration.py — здесь просто smoke,
|
||
зеркалящий остальные Yandex-скрапперы в этом файле.
|
||
"""
|
||
s = YandexValuationScraper(config=_KIT_CONFIG, delay_provider=lambda _name: 9.5)
|
||
assert s.request_delay_sec == 9.5
|