gendesign/tradein-mvp/backend/tests
bot-backend f9ae6f0c53
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
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 1m3s
CI Trade-In / frontend-checks (pull_request) Has been skipped
fix(tradein/estimator): non-EKB headline из deals + geo-bound Tier-S analog leak
Валидация вскрыла: не-ЕКБ headline over-priced — analog Tier-S (same-building) fallback БЕЗ geo-предиката матчил одноимённую улицу+дом в ДРУГОМ городе → тянул ЕКБ-листинги (40191 EKB/~0 non-EKB) с distance_m=0. Серов ask-head 186k vs sold 30k; Н.Тагил 187k vs deal-corridor 89k.

Part 1 (Tier-S geo-bound, ~4624): + ST_DWithin(geom, subject, radius) в address-prefix fallback (зеркалит Tier-W). >99.97% листингов с coords → режет только cross-city false-positives.
Part 2 (deals-headline-fallback): _fetch_dkp_corridor widen на city-wide при street-sample <3 (gated city!=екатеринбург); _price_from_inputs: при median_ppm2<=0 (нет листингов) + anchor_tier None + dkp_raw>=3 → headline из deal-corridor, confidence=low, n_analogs=0, expected_sold=None.

Deep-review  APPROVE (no 🔴/🟠; ~10 downstream stages traced coherent). EKB byte-green regression-гейт (fallback требует median_ppm2<=0, невозможно для frozen fixture; Part 1 SQL не в replay). Тесты: Н.Тагил 0-листингов+corridor85911 → headline=85911 (не 0/186k); EKB-control dense → headline из листингов (fallback не срабатывает). Full suite 2418 passed.

Follow-ups (🟡): fallback без city-gate (sparse EKB n/a→deals, safe); api_analog_tier мислейбл 'city'; Part1/2a integration-test; EKB backtest post-deploy (rule #7).
2026-07-12 21:46:38 +03:00
..
core feat(tradein/scraper): cooperative SIGTERM-drain for graceful deploy (#1182 Phase 2) 2026-06-28 19:52:09 +03:00
fixtures fix(tradein/estimator): rebase ground-floor hedonic term onto current main (#2002, #2382) (#2391) 2026-07-04 07:33:37 +00:00
matching fix(matching): conflict_resolution picks freshest (last_seen_at) value, deterministic (#1539) 2026-06-17 22:43:59 +03:00
scrapers feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока (#2000) (#2433) 2026-07-04 17:49:40 +00:00
scripts fix(backfill): drop nonexistent kadastr_num column from listings SELECT 2026-06-17 23:47:30 +03:00
services fix(tradein/dadata): suggest-fallback для house_fias_id когда CLEAN выключен 2026-07-12 19:55:37 +03:00
support chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
tasks feat(tradein/domclick): production Layer B detail-backfill orchestrator (#2000) (#2436) 2026-07-04 19:49:07 +00:00
__init__.py feat(tradein): avito_imv.py — Avito IMV evaluation API client (2 requests) (#444) 2026-05-23 12:16:47 +00:00
test_781_quality_gate.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_account_quota.py fix(tradein): atomic conditional quota increment — close TOCTOU (#747) (#749) 2026-05-30 15:52:34 +00:00
test_admin_proxies.py feat(proxy-pool): scrape_proxies table + admin bulk-load/list endpoints (#2161) 2026-07-02 16:31:21 +00:00
test_admin_ssrf.py chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops (#2204) 2026-07-03 10:08:56 +03:00
test_api_avito_stage4a.py fix(tradein): single-run guard на avito-city-sweep admin-endpoint (#874) 2026-05-31 08:55:33 +00:00
test_asking_sold_ratio_cache_poison.py fix(tradein/estimator): savepoint+retry вокруг ratio-lookup — transient не гасит expected_sold (#2265) 2026-07-03 10:19:57 +03:00
test_asking_to_sold_ratio.py fix(tradein): city-scope ДКП-запросы — убрать oblast-контаминацию (C1+C2) 2026-07-12 20:18:36 +03:00
test_audit_address_mismatch.py feat(tradein): Phase 1 of #582 — address mismatch audit infrastructure 2026-05-25 12:50:30 +05:00
test_avito_imv_parse.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_avito_newbuilding_sweep.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_backfill_external_valuations_house_id.py fix(tradein/data): external_valuations.house_id — резолв в write-path + идемпотентный бэкфилл (#2236) 2026-07-03 09:22:44 +03:00
test_backfill_house_coords.py feat(tradein): Phase 2-3 of #582 — Yandex backfill + canonical audit (#591) 2026-05-27 06:30:54 +00:00
test_backfill_wave2.py refactor(tradein/scrapers): удалить 6 осиротевших legacy scraper-модулей + тест-хирургия (#2397 Part E2) 2026-07-04 14:37:19 +03:00
test_backtest_estimator.py feat(tradein/backtest): --city per-city валидация + corridor city-parity 2026-07-12 20:49:04 +03:00
test_backtest_fixture_roundtrip.py fix(tradein/estimator): remove dead tier-aware-ratio path — truncation artifact + footgun (#2002) 2026-06-27 17:34:54 +00:00
test_backtest_regression_gate.py feat(tradein/estimator): включить кросс-source физдедуп аналогов по умолчанию (#2087 H4, #2173) 2026-07-02 20:56:39 +03:00
test_buildings_api.py fix(tradein/sale-share): гард по этажности — отсечь near-neighbor mis-match 2026-06-29 00:31:09 +03:00
test_cian_bti_house_persist.py fix(tradein/cian): персист bti_data/valuation house_info в houses + дедуп УК (#2435) (#2437) 2026-07-04 20:21:32 +00:00
test_cian_city_sweep.py refactor(tradein/scrapers): удалить legacy scrape_pipeline.py + тест-хирургия (#2397 Part E1) 2026-07-04 13:56:06 +03:00
test_cian_session.py fix(cian): verify_session на curl_cffi impersonate — ban != cookies expired (Refs #768) (#785) 2026-05-30 16:40:54 +00:00
test_cian_state_parser.py fix(tradein/cian): extract_all_states — discover new .concat() format, not just legacy .push() (#2438) 2026-07-04 21:03:32 +00:00
test_city_sweep.py refactor(tradein/scrapers): удалить legacy scrape_pipeline.py + тест-хирургия (#2397 Part E1) 2026-07-04 13:56:06 +03:00
test_config_avito_rotations.py fix(avito): proactive IP rotate at sweep start + raise max_rotations 2->4 (Datadome ban recovery) 2026-06-17 23:35:24 +03:00
test_deactivate_stale_avito.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_deactivate_stale_listings.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_deals_freshness_monitor.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_deals_sanitize.py fix(tradein): Mera-audit fix-2 — _is_plausible_deal floor edge + area/price guards 2026-06-21 09:04:54 +03:00
test_domclick_admin_apis.py feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока (#2000) (#2433) 2026-07-04 17:49:40 +00:00
test_domclick_session.py feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока (#2000) (#2433) 2026-07-04 17:49:40 +00:00
test_domclick_sweep.py refactor(tradein/scrapers): удалить 6 осиротевших legacy scraper-модулей + тест-хирургия (#2397 Part E2) 2026-07-04 14:37:19 +03:00
test_domrf_kapremont_loader.py feat(tradein): fill houses.year_built/material_walls from ДОМ.РФ КР1.1/1.2 + zhkh_year, propagate to listings (#2013) (#2476) 2026-07-12 13:12:07 +00:00
test_ekb_geoportal_ingest.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_estimate_idor.py fix(tradein/estimator): city-scope ДКП-коридора + oblast city-tokens/bbox 2026-07-12 20:10:59 +03:00
test_estimator_anchor_dedup_gap_2265.py fix(tradein/estimator): дедуп кросс-source дублей в anchor-пути (#2265 follow-up) (#2311) 2026-07-03 20:35:37 +00:00
test_estimator_audit_fixes.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_cian_budget.py fix(tradein): budget Cian valuation call to stop 25s estimate stalls 2026-06-19 12:43:28 +03:00
test_estimator_cian_integration.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_estimator_client_coords.py feat(tradein): estimate accepts client-provided coords, skips geocode (Variant A) 2026-06-19 14:15:02 +03:00
test_estimator_cohort.py fix(tradein-estimator): extend cohort filter to Tier S + Tier H, fix late_soviet overlap (#522) 2026-05-24 13:14:59 +00:00
test_estimator_deals_headline_fallback_oblast_d.py fix(tradein/estimator): non-EKB headline из deals + geo-bound Tier-S analog leak 2026-07-12 21:46:38 +03:00
test_estimator_dedup_cross_source_2087.py fix(tradein/estimator): восстановить и канонизировать корпус дома в дедупе (регрессия #2429) (#2432) 2026-07-04 17:08:40 +00:00
test_estimator_enrich.py fix(tradein/estimator): честная маркировка quarter-precision дат ДКП + insufficient_data флаг для sell-time-sensitivity (#1995) (#2355) 2026-07-04 00:14:02 +00:00
test_estimator_event_loop_2207.py perf(tradein): снять блокировку event loop на POST /estimate (#2207) (#2225) 2026-07-02 20:39:48 +00:00
test_estimator_expected_sold.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_expected_sold_clamp.py feat(tradein/estimator): hedonic year+area correction on expected_sold (#2002) 2026-06-27 16:06:08 +00:00
test_estimator_floor_optional.py feat(tradein): этаж/этажность optional + best test presets по deal count (#558) 2026-05-24 21:44:44 +00:00
test_estimator_ghost_anchor_1871.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_ghost_anchor_radius_empty_1871.py fix(estimator): ghost-anchor — confidence='low' when radius analogs empty (#1871) (#1920) 2026-06-26 16:07:12 +00:00
test_estimator_hedonic.py fix(tradein/estimator): rebase ground-floor hedonic term onto current main (#2002, #2382) (#2391) 2026-07-04 07:33:37 +00:00
test_estimator_imv_blend.py feat(tradein/estimator): hedonic year+area correction on expected_sold (#2002) 2026-06-27 16:06:08 +00:00
test_estimator_imv_integration.py feat(tradein/estimator): switch core valuation call sites to scraper_kit (#2337) 2026-07-04 02:40:34 +03:00
test_estimator_kitchen_ceiling_2012.py fix(tradein/estimator): kitchen_area_m2/ceiling_height_m/is_apartments comp-scoring (#2012) (#2396) 2026-07-04 08:33:17 +00:00
test_estimator_manual_review.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_n_analogs_priced.py feat(tradein/estimator): включить кросс-source физдедуп аналогов по умолчанию (#2087 H4, #2173) 2026-07-02 20:56:39 +03:00
test_estimator_null_floor_timeout.py fix(tradein): time-budget estimate enrichment + observable errors to stop opaque 502 (#654) (#673) 2026-05-29 17:22:02 +00:00
test_estimator_premium_building.py feat(tradein): AI-curated premium-building overlay — class + false-positive demotion (#2002) 2026-06-27 18:43:05 +00:00
test_estimator_price_spine.py fix(tradein/estimator): lock honest asking_to_sold_ratio invariant + disambiguate torg bases (#2087 M2/M3) (#2387) 2026-07-04 06:48:51 +00:00
test_estimator_price_trend_dedup.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_pure_units.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_quarter_index.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_radius_dedup_1871.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_radius_floor.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_radius_m_2044.py feat(tradein/api): #2044 BE-2 — optional radius_m on house-analytics + sell-time-sensitivity 2026-07-02 16:51:11 +03:00
test_estimator_range_floor.py fix(tradein/estimator): min-width floor ±12% на ценовой диапазон (#2209) (#2230) 2026-07-02 21:21:28 +00:00
test_estimator_ratio_savepoint_retry_2265.py fix(tradein/estimator): savepoint+retry вокруг ratio-lookup — transient не гасит expected_sold (#2265) 2026-07-03 10:19:57 +03:00
test_estimator_ratio_tier_fix.py fix(tradein/estimator): remove dead tier-aware-ratio path — truncation artifact + footgun (#2002) 2026-06-27 17:34:54 +00:00
test_estimator_repair_coef.py feat(tradein): estimator additive expected_sold price (#648 S3) (#661) 2026-05-29 13:37:33 +00:00
test_estimator_sber_time_adjust.py test(tradein): fix #794 test regressions on main (broken by #919 early squash-merge) (#921) 2026-05-31 19:05:10 +00:00
test_estimator_segment_multiplier.py feat(tradein/estimator): сегментная поправка headline+выкуп по ценовому бэнду за флагом (#2255) (#2293) 2026-07-03 18:43:38 +00:00
test_estimator_source_metrics_2043.py fix(tradein/v2): canonical sources_used — kill «ИСТОЧНИКОВ X/7» POST↔GET desync 2026-07-02 17:22:20 +03:00
test_estimator_source_quota.py feat(tradein): estimator additive expected_sold price (#648 S3) (#661) 2026-05-29 13:37:33 +00:00
test_estimator_split_corridor_1871.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_estimator_yandex_integration.py feat(tradein/estimator): switch core valuation call sites to scraper_kit (#2337) 2026-07-04 02:40:34 +03:00
test_extract_short_addr.py feat(tradein-estimator): tiered house-match S→H→W (#507) 2026-05-24 12:41:12 +00:00
test_extval_house_id_write_path.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_gar_flats_loader.py feat(tradein): канонический матч ГАР↔houses (0%→41% yield) + tradein_canon_addr + --match-only (#2063) 2026-06-28 15:50:07 +00:00
test_geo_precision.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_geocode_reverse_api.py feat(tradein): MapPicker snap marker — Phase 5 of #582 (#594) 2026-05-27 09:30:17 +00:00
test_geocoder_bbox.py fix(tradein/geocoder): раз-хардкод геокодера/DaData на всю Свердловскую обл. (region 66) 2026-07-12 18:33:05 +03:00
test_geocoder_cadastral_matcher.py feat(tradein): EKB geoportal building ingest + geocoder tier (complete city buildings) 2026-06-19 17:51:07 +03:00
test_history_scope.py feat(tradein/history): вернуть все параметры оценки в GET /history (#2420) 2026-07-04 13:09:22 +00:00
test_house_dedup_merge.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_house_imv_backfill_browser_flag.py feat(tradein-imv): route IMV backfill через BrowserFetcher.fetch_json за dormant-флагом (#915 Stage 3) (#1916) 2026-06-26 09:54:28 +00:00
test_insufficient_data_flag.py feat(tradein): insufficient_data flag on AggregatedEstimate (#697) (#734) 2026-05-30 14:40:04 +00:00
test_internal_auth_secret.py fix(tradein/security): defense-in-depth trusted-header auth + rate-limiter fix (#2213) (#2229) 2026-07-02 21:15:58 +00:00
test_kit_browser_fetcher_proxy_pool.py feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока (#2000) (#2433) 2026-07-04 17:49:40 +00:00
test_kit_serp_proxy_pool.py refactor(tradein/scraper-kit): yandex providers on shared _base.py (#2363) 2026-07-04 09:38:43 +03:00
test_listing_source_snapshot.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_location_coef_endpoint.py feat(tradein): location-coef MVP через FDW-мост к OSM POI Птицы (#2045) 2026-07-03 23:44:55 +03:00
test_matching.py fix(tradein/matching): P1 extended — never create a house from a numberless address (no cadastral) 2026-07-02 21:33:52 +03:00
test_me_brand.py feat(tradein/v2): реальный display-профиль в TopNav через /me (#2046) 2026-07-03 22:55:12 +03:00
test_migration_164_yandex_url_canonicalize.py fix(tradein/data): yandex url-дубли — дедуп-миграция + инвариант + корень (#2235) 2026-07-03 09:39:29 +03:00
test_migration_165_remove_n1_source.py chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops (#2204) 2026-07-03 10:08:56 +03:00
test_migrations_manifest.py fix(tradein/deploy): миграции ДО подъёма app-контейнеров + manifest-инвариант (#2216) (#2228) 2026-07-02 21:03:37 +00:00
test_pdf_security.py feat(tradein/pdf): редизайн отчёта в реальном языке МЕРА (v2 HUD) (#2434) 2026-07-04 18:41:21 +00:00
test_pipeline_browser_routing.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_proxy_pool_curl_paths.py feat(proxy-pool): P3 — kit curl-paths acquire/release from pool behind USE_PROXY_POOL_CURL, ship-dark (#2163) 2026-07-02 18:56:36 +00:00
test_ratelimit.py fix(tradein/security): defense-in-depth trusted-header auth + rate-limiter fix (#2213) (#2229) 2026-07-02 21:15:58 +00:00
test_rbac.py test(rbac): user2 expected role expired after brusnika trial cutoff 2026-07-09 19:16:59 +03:00
test_rosreestr_dedup_key.py fix(tradein/ingest): раз-хардкод rosreestr DKP импорта на всю обл. 66 2026-07-12 18:11:47 +03:00
test_rosreestr_poll.py fix(tradein): repoint rosreestr_poll to /data-sets/ + verify Content-Type (СДЕЛКИ dataset moved off /opendata) (#2477) 2026-07-12 13:21:58 +00:00
test_sales_vs_listings.py fix(tradein/estimator): честная маркировка quarter-precision дат ДКП + insufficient_data флаг для sell-time-sensitivity (#1995) (#2355) 2026-07-04 00:14:02 +00:00
test_same_building_anchor.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_same_building_match.py feat(tradein/matching): fias_exact tier + estimate fias persist + suggest fias_id contract 2026-07-02 20:49:04 +03:00
test_sber_index.py fix(tradein): correct SberIndex hedonic/asking dataset-paths + 404 warning (#902) 2026-06-17 22:50:52 +03:00
test_scheduler.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_scheduler_main.py refactor(tradein/scheduler): удалить legacy scheduler_loop + scraper-scheduling, kit единственный путь (#2397 Part C) 2026-07-04 13:00:30 +03:00
test_scrape_run_alert.py feat(observability): sentry alert on N consecutive scraper failures (Refs #827) (#833) 2026-05-30 20:10:29 +00:00
test_scraped_at_bump_2206.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_scraper_adapters_contracts.py feat(proxy-pool): P4 — browser dynamic pool-proxy (acquire→/fetch→relaunch) + orchestration wiring, ship-dark (#2164) 2026-07-02 19:20:29 +00:00
test_scraper_admin_apis.py fix(tradein/security): admin.py — generic detail + error-id вместо сырого текста исключений (#2234) 2026-07-03 09:16:34 +03:00
test_scraper_kit_group_c_backfill_kit_parity.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_scraper_kit_newbuilding_endpoint.py refactor(tradein/tasks): newbuilding_enrich_backfill на kit cian.newbuilding + config= (#2397 Part D3) 2026-07-04 15:20:18 +03:00
test_scraper_kit_pipeline_parity.py refactor(tradein/scrapers): удалить legacy scrape_pipeline.py + тест-хирургия (#2397 Part E1) 2026-07-04 13:56:06 +03:00
test_scraper_kit_pipeline_parity2.py refactor(tradein/scrapers): удалить legacy scrape_pipeline.py + тест-хирургия (#2397 Part E1) 2026-07-04 13:56:06 +03:00
test_scraper_kit_providers_base.py feat(tradein/scraper-kit): shared base/utils для providers/* (#2358, Foundation) 2026-07-04 03:50:55 +03:00
test_scraper_kit_scheduler_parity.py feat(tradein/scraper): per-city sweep capability для 5 городов области (schedules disabled) 2026-07-12 20:06:46 +03:00
test_scraper_proxy.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_scraper_settings.py chore(tradein): деактивировать N1.ru scraper — источник переехал в Cian 2026-06-16 14:50:51 +03:00
test_search_api.py feat(tradein): segment=vtorichka|novostroyki|all query-param on listings (#1188) 2026-06-17 21:43:01 +03:00
test_segment_guard_1186.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_sell_time_sensitivity.py fix(tradein/estimator): честная маркировка quarter-precision дат ДКП + insufficient_data флаг для sell-time-sensitivity (#1995) (#2355) 2026-07-04 00:14:02 +00:00
test_sentry_scrub.py feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
test_snapshot_writer.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_street_deals_endpoint.py fix(tradein): word-boundary street match + cian unescape robustness (Refs #769 A1+D) (#798) 2026-05-30 17:18:33 +00:00
test_suggest_fias_contract.py feat(tradein/matching): fias_exact tier + estimate fias persist + suggest fias_id contract 2026-07-02 20:49:04 +03:00
test_sweep_imv_phase.py refactor(tradein/scrapers): удалить legacy scrape_pipeline.py + тест-хирургия (#2397 Part E1) 2026-07-04 13:56:06 +03:00
test_tier_a_primary_1774.py tech-debt(tradein/estimator): collapse won estimate_* flags into defaults (#1970) (#2475) 2026-07-12 12:46:18 +00:00
test_trade_in_lead.py feat(tradein/lead): POST /api/v1/trade-in/lead — persist contact leads (#2376) (#2390) 2026-07-04 07:12:22 +00:00
test_yandex_city_sweep.py refactor(tradein/scrapers): удалить 6 осиротевших legacy scraper-модулей + тест-хирургия (#2397 Part E2) 2026-07-04 14:37:19 +03:00
test_yandex_detail.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_yandex_detail_structural.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_yandex_history_area_filter.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_yandex_price_history.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_yandex_scrapers_delay_wiring.py chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
test_yandex_valuation.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_yandex_valuation_save.py chore(tradein/scraper-kit): удалить 5 orphaned legacy-модулей (#2277 финальный шаг, частичный) 2026-07-04 10:41:46 +03:00
test_zhkh_flats_loader.py fix(tradein): cadastre ЖКХ-fallback + COALESCE merge-key + median-floors guard 2026-06-29 01:32:48 +03:00