..
fixtures
fix(tradein-imv): harden Avito IMV anti-bot path + offline contract tests ( #565 )
2026-05-28 16:29:05 +05:00
matching
chore(tradein): close pre-commit ruff gap + add CI pytest gate ( #666 ) ( #675 )
2026-05-29 19:18:48 +00:00
scrapers
fix(tradein/avito): anti-bot hardening — sleep + abort + shared session ( #487 )
2026-05-23 20:08:40 +00:00
scripts
feat(tradein): приоритизировать DaData house-backfill на дома с листингами (accuracy #2 )
2026-05-28 15:17:01 +05:00
services
feat(tradein): expected-sold price in estimate PDF ( #648 S5b — final) ( #665 )
2026-05-29 14:09:46 +00:00
tasks
fix(tradein): geocode backfill + remove Avito exclusion from estimator ( #490 )
2026-05-23 20:03:48 +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_account_quota.py
feat(tradein): configurable estimate quota + new exhausted-quota copy ( #658 ) ( #671 )
2026-05-29 16:07:02 +00:00
test_api_avito_stage4a.py
feat(tradein): Stage 4a — API endpoints for Avito enrichment + IMV benchmark UI ( #460 )
2026-05-23 13:34:38 +00:00
test_asking_to_sold_ratio.py
feat(tradein): daily asking→sold ratio refresh ( #648 S4) ( #663 )
2026-05-29 13:49:36 +00: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_address_clean.py
fix(tradein-avito): strip Emotion CSS from listings.address ( #502 )
2026-05-24 10:52:50 +00:00
test_avito_detail_parse.py
feat(tradein): infer repair_state from listing description text ( #622 ) ( #632 )
2026-05-28 15:37:34 +00:00
test_avito_houses_parse.py
fix(tradein): decode Avito houses URL-encoded __preloadedState__ ( #566 )
2026-05-28 15:58:19 +05:00
test_avito_imv_parse.py
fix(tradein-imv): harden Avito IMV anti-bot path + offline contract tests ( #565 )
2026-05-28 16:29:05 +05:00
test_avito_relative_date.py
fix(tradein): Avito listing_date extraction (3 формата) ( #601 )
2026-05-27 12:55:27 +00: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_backtest_estimator.py
feat(backtest): per-rooms asking→sold correction block ( #648 S1) ( #650 )
2026-05-29 13:11:55 +00:00
test_base_save_listings.py
feat(tradein): hook matching в save_listings — fill listing_sources (PR I) ( #595 )
2026-05-27 10:02:37 +00:00
test_cian_detail.py
feat(tradein): infer repair_state from listing description text ( #622 ) ( #632 )
2026-05-28 15:37:34 +00:00
test_cian_newbuilding.py
feat(tradein): cian_newbuilding.py — ЖК catalog scraper (chart + reliability + offers, Wave 4 Worker C) ( #459 )
2026-05-23 13:23:11 +00:00
test_cian_serp_scraper.py
feat(tradein): cian.py SERP refactor — state-based extraction (137 fields, no jitter) ( #450 )
2026-05-23 12:52:04 +00:00
test_cian_session.py
fix(tradein): CIAN_REQUIRED_COOKIES — add real auth cookies (DMIR_AUTH + Cian session) ( #480 )
2026-05-23 14:52:24 +00:00
test_cian_state_parser.py
feat(tradein): cian_state_parser shared utility + ScrapedLot Cian fields ( #447 )
2026-05-23 12:35:01 +00:00
test_cian_valuation.py
feat(tradein): cian_valuation.py — auth-required Calculator scraper + 24h cache ( #465 )
2026-05-23 13:43:34 +00:00
test_city_sweep.py
feat(tradein): city sweep — auto ЕКБ pipeline ( #477 )
2026-05-23 14:38:07 +00:00
test_estimator_cian_integration.py
feat(tradein): estimator additive expected_sold price ( #648 S3) ( #661 )
2026-05-29 13:37:33 +00: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_enrich.py
feat(tradein): enrich /estimate response for web map, distribution, exposure & trend
2026-05-30 10:19:00 +03:00
test_estimator_expected_sold.py
feat(tradein): estimator additive expected_sold price ( #648 S3) ( #661 )
2026-05-29 13:37:33 +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_imv_blend.py
feat(tradein): blend Avito IMV anchor into estimate + ДКП corridor advisory ( #651 , #652 ) ( #674 )
2026-05-29 17:42:06 +00:00
test_estimator_imv_integration.py
feat(tradein): integrate Avito IMV as 5th evaluation source (on-demand cached) ( #452 )
2026-05-23 13:08:22 +00: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_pure_units.py
test(tradein): estimator pure-helper unit tests + fix None crash in _filter_outliers ( #580 ) ( #640 )
2026-05-29 08:24:18 +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_source_quota.py
feat(tradein): estimator additive expected_sold price ( #648 S3) ( #661 )
2026-05-29 13:37:33 +00:00
test_estimator_yandex_integration.py
feat(yandex-valuation): link history rows to houses via match_or_create_house ( #531 )
2026-05-24 14:28:30 +00: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_geocode_reverse_api.py
feat(tradein): MapPicker snap marker — Phase 5 of #582 ( #594 )
2026-05-27 09:30:17 +00:00
test_history_scope.py
chore(tradein): close pre-commit ruff gap + add CI pytest gate ( #666 ) ( #675 )
2026-05-29 19:18:48 +00:00
test_listing_source_snapshot.py
feat(tradein): per-source listing price history — schema + daily snapshot ( #570 ) ( #646 )
2026-05-29 12:18:04 +00:00
test_matching.py
fix(tradein-matching): pg_advisory_xact_lock to prevent duplicate house INSERTs ( #501 )
2026-05-24 10:52:10 +00:00
test_me_brand.py
feat(tradein): brand-by-account + result IA redesign (distinct asking/sale prices) ( #683 )
2026-05-30 06:45:14 +00:00
test_ratelimit.py
fix(tradein): bypass rate-limit for authenticated pilots + configurable limit ( #655 ) ( #669 )
2026-05-29 15:56:30 +00:00
test_rbac.py
feat(rbac): pilot scope → только /trade-in/** ( #587 )
2026-05-26 07:40:44 +00:00
test_repair_state_normalizer.py
feat(tradein): infer repair_state from listing description text ( #622 ) ( #632 )
2026-05-28 15:37:34 +00:00
test_rosreestr_dedup_key.py
fix(tradein): plain natural-key dedup_hash for rosreestr deals ( #576 ) ( #638 )
2026-05-29 06:56:35 +00:00
test_sales_vs_listings.py
feat(tradein): sales-vs-listings endpoint (PR K, foundation #564 ) ( #597 )
2026-05-27 11:55:44 +00:00
test_same_building_anchor.py
fix(tradein): distinct asking median vs expected-sold price (no double-discount) ( #682 )
2026-05-30 06:35:46 +00:00
test_same_building_match.py
feat(tradein): same-building матчинг аналогов по house_id ( #6 )
2026-05-28 13:55:51 +05:00
test_scheduler.py
feat(tradein): in-app scheduler — UI-managed schedule (replaces SSH crontab) ( #482 )
2026-05-23 14:54:25 +00:00
test_scrape_pipeline.py
feat(tradein): scrape_pipeline.py — Avito full orchestrator (search → houses → detail) ( #451 )
2026-05-23 12:55:13 +00:00
test_scraper_settings.py
feat(tradein): global scraper delay setting (applies across all scrapers) ( #485 )
2026-05-23 15:43:28 +00:00
test_search_api.py
feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache ( #479 )
2026-05-23 14:44:22 +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
fix(tradein): implement listings_snapshots + offer_price_history writers ( #567 ) ( #624 )
2026-05-28 13:49:52 +00:00
test_street_deals_endpoint.py
fix(tradein): extract_street_name handles Nominatim reverse format ( #557 )
2026-05-24 21:03:42 +00:00
test_yandex_city_sweep.py
feat(scheduler): dormant Yandex Realty city-sweep ( #561 ) ( #642 )
2026-05-29 08:50:10 +00:00
test_yandex_detail.py
feat(tradein): yandex_detail.py — Product JSON-LD + DOM detail parser ( #466 )
2026-05-23 13:45:09 +00:00
test_yandex_helpers.py
fix(tradein): Yandex listing_date — keyword + absolute-no-year ( #602 )
2026-05-27 13:11:22 +00:00
test_yandex_newbuilding.py
feat(tradein): yandex_newbuilding.py — ЖК landing parser (149 selectors + NLP) ( #467 )
2026-05-23 13:46:45 +00:00
test_yandex_realty_serp.py
fix(tradein): yandex_realty captures house number + parse_rub strips NBSP ( #593 )
2026-05-27 07:23:36 +00:00
test_yandex_scrapers_delay_wiring.py
feat(tradein): scraper_settings live-config + Yandex admin trigger endpoints ( #484 )
2026-05-23 15:28:34 +00:00
test_yandex_valuation.py
fix(yandex-valuation): off-by-one cell index in _parse_row_cells ( #552 )
2026-05-24 19:57:17 +00:00
test_yandex_valuation_save.py
feat(yandex-valuation): link history rows to houses via match_or_create_house ( #531 )
2026-05-24 14:28:30 +00:00