gendesign/tradein-mvp/backend/tests/scrapers
bot-backend afa93f9a1e
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
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 4m56s
fix(tradein): миграция 285 не трогает строки триггера (deep-review блокер)
Утверждение «формула триггера = формула миграции» было ложным по ИСТОЧНИКУ базы:
record_listing_price_change (131:76-86) считает процент от listings.OLD.price_rub,
а не от предыдущей строки offer_price_history. Пересчёт по lag() портил честные
значения: у листинга, чья история начинается с триггерной строки, lag() = NULL →
−0.82 уходил в NULL; у триггерной строки с соседом-строкой загрузчика база чужая.

Теперь пересчитываем и берём как базу ТОЛЬКО строки загрузчика
(change_time <> recorded_at — триггер ставит обе метки одним now()). Это ровно то,
что делает починенный код: процент внутри истории самой карточки. Окно lag()
сужено до листингов с domklik-строками — иначе оконная функция шла по всей
таблице под lock_timeout = 5s и валила деплой.

Признак закреплён тестом на INSERT загрузчика (recorded_at не указан → DEFAULT
NOW()); при добавлении recorded_at в INSERT тест краснеет — проверено.
В шапке миграции отмечена асимметрия: старые cian-строки с |x| > 100 не чиним.
2026-09-06 01:08:09 +05:00
..
__init__.py fix(tradein/avito): anti-bot hardening — sleep + abort + shared session (#487) 2026-05-23 20:08:40 +00:00
test_3034_detail_retry_keeps_proxy.py fix(tradein/avito): повтор после блока терял прокси и уходил с адреса машины 2026-08-27 15:33:29 +03:00
test_3251_avito_fetch_detail_origin.py fix(tradein/avito): браузерный путь ходил на каждую карточку холодным (#3251) 2026-08-30 11:47:15 +03:00
test_avito_clean_address_rating_tail.py fix(tradein/avito): рейтинг дома перестаёт уезжать в адрес объявления (#2814) 2026-08-10 14:32:25 +05:00
test_avito_detail_kit_warmed_session_config.py fix(tradein/scraper-kit): точность докстрингов про прод-путь build_warmed_session 2026-07-04 03:01:27 +03:00
test_avito_detail_warmup_antibot_cookies.py fix(tradein/scraper-kit): actualize avito fingerprint - impersonate/Sec-Fetch-Site/referer/cookie-check 2026-08-21 17:02:53 +03:00
test_avito_imv_browser_transport.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_avito_imv_kit_parity.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_avito_unix_date_tz_consistency.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_base_clamp_date.py fix(tradein/scrapers): clamp implausible listing/publish dates (LOW audit R2 #6) (#2507) 2026-07-12 22:11:06 +00:00
test_domclick_detail.py fix(tradein): миграция 285 не трогает строки триггера (deep-review блокер) 2026-09-06 01:08:09 +05:00
test_yandex_valuation_kit_migration.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00