| .. |
|
core
|
feat(tradein/scraper): cooperative SIGTERM-drain for graceful deploy (#1182 Phase 2)
|
2026-06-28 19:52:09 +03:00 |
|
fixtures
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +00:00 |
|
matching
|
fix(matching): conflict_resolution picks freshest (last_seen_at) value, deterministic (#1539)
|
2026-06-17 22:43:59 +03:00 |
|
scrapers
|
fix(tradein/domclick): sale_type перестаёт быть третьим словарём (#2674) (#2696)
|
2026-08-06 06:11:45 +00:00 |
|
scripts
|
fix(tradein/geocode): гейт мусорного города вынести в общий хелпер и прошить в admin-путь (#2603)
|
2026-08-05 20:20:41 +05:00 |
|
services
|
fix(tradein): тест ловит копию константы, а не equality; честный комментарий про вклад свежести (#2660)
|
2026-08-05 23:13:22 +05:00 |
|
support
|
feat(tradein): переключаемый реестр людей — подготовка переезда «Меры» в БД auth [PR-2b/6]
|
2026-08-01 02:50:14 +03:00 |
|
tasks
|
fix(tradein/scraper): detail-backfill с нулём обогащений перестаёт называться успехом (#2674) (#2695)
|
2026-08-06 05:59:37 +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 |
|
conftest.py
|
fix(tradein/tests): тесты авторизации проверяют настоящий guard + реальный рендер PDF (#2541)
|
2026-07-26 23:04:43 +00:00 |
|
test_781_quality_gate.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +00:00 |
|
test_2674_avito_full_load_coverage.py
|
fix(tradein/avito): верное объяснение границы окна и критерий приёмки по глубине (#2674)
|
2026-08-06 04:09:05 +05:00 |
|
test_2674_dead_admin_metrics.py
|
fix(tradein/admin): гейт отмены по источнику, честный комментарий view, лимит 50 (#2674)
|
2026-08-06 03:57:46 +05:00 |
|
test_2674_writers_honor_schema.py
|
fix(tradein): убрать невыводимые события, развести «снято» и «протухло» (#2674)
|
2026-08-06 03:01:05 +05:00 |
|
test_account_quota.py
|
feat(tradein/auth): восстановить доступ praktika + безлимит через данные вместо хардкода (#2544)
|
2026-07-26 23:29:53 +00:00 |
|
test_admin_proxies.py
|
fix(tradein/proxy): backup-узел должен быть пригоден + рычаг снятия бана (#2600 п.2)
|
2026-08-05 17:45:07 +05:00 |
|
test_admin_scrape_avito_proxy_provider.py
|
fix(tradein/scraper): подключить браузерный путь Авито к пулу прокси
|
2026-08-02 17:31:00 +03:00 |
|
test_admin_ssrf.py
|
chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops (#2204)
|
2026-07-03 10:08:56 +03:00 |
|
test_admin_stale_counters.py
|
fix(tradein): сегментный гард в «медианном торге», свежесть в индексе локации, честные админ-счётчики (#2660)
|
2026-08-05 22:39:48 +05:00 |
|
test_alerts_become_events.py
|
fix(tradein): чинит такт загрузки СберИндекса — иначе новый ERROR стал бы ложной тревогой (#2674)
|
2026-08-06 02:53:26 +05: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): area-бакеты в asking→sold — и расчёт, и применение (#2620) (#2648)
|
2026-08-05 08:11:04 +00:00 |
|
test_audit_api.py
|
feat(tradein/admin): audit + analytics read API over user_events (#2520)
|
2026-07-13 20:26:58 +00:00 |
|
test_auth_api.py
|
fix(tradein/auth): не ронять и не занимать пул на замедлении входа (#2571)
|
2026-08-05 23:14:11 +05:00 |
|
test_auth_dsn_from_parts.py
|
feat(tradein): DSN к БД auth собирается из AUTH_DB_PASSWORD, а не дублирует секрет
|
2026-08-02 12:05:41 +03:00 |
|
test_auth_session.py
|
feat(tradein): переключаемый реестр людей — подготовка переезда «Меры» в БД auth [PR-2b/6]
|
2026-08-01 02:50:14 +03:00 |
|
test_avito_detail_publish_date_year_rollover.py
|
fix(tradein/scrapers): детекция дрейфа разметки вместо тихой пустоты (#2535)
|
2026-07-26 22:33:54 +00: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_avito_serp_city_slug.py
|
fix(tradein/oblast): city-slug в avito SERP + geo/city guard в Tier-2b матчинга
|
2026-07-12 22:38:11 +03:00 |
|
test_avito_sweep_dom_drift.py
|
fix(tradein/proxy): доводить сигнал бана площадки до пула (#2600 п.1) (#2653)
|
2026-08-05 11:37:35 +00: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_honest_status.py
|
fix(tradein/scraper): detail-backfill с нулём обогащений перестаёт называться успехом (#2674) (#2695)
|
2026-08-06 05:59:37 +00:00 |
|
test_backfill_wave2.py
|
fix(tradein/imv): домовая оценка перестаёт врать про ремонт и тип дома (#2674)
|
2026-08-06 00:29:49 +05: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/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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_captcha_vs_empty_detect.py
|
fix(tradein/proxy): доводить сигнал бана площадки до пула (#2600 п.1) (#2653)
|
2026-08-05 11:37:35 +00:00 |
|
test_cian_bti_house_persist.py
|
fix(tradein/cian): читать bti из offerData — BTI-персист в houses писал ноль строк (#2435)
|
2026-08-05 23:39:40 +05: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_history_backfill_listings_rollback.py
|
fix(tradein): откат транзакции в backfill + неотрицательный счётчик квот (#2538)
|
2026-07-26 22:21:08 +00:00 |
|
test_cian_serp_offers_total_mismatch.py
|
fix(tradein/scrapers): детекция дрейфа разметки вместо тихой пустоты (#2535)
|
2026-07-26 22:33:54 +00:00 |
|
test_cian_session.py
|
fix(tradein/scrapers): детекция дрейфа разметки вместо тихой пустоты (#2535)
|
2026-07-26 22:33: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
|
fix(tradein/admin): гейт отмены по источнику, честный комментарий view, лимит 50 (#2674)
|
2026-08-06 03:57:46 +05: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_dead_code_sweep_2674.py
|
fix(tradein): панорама для страниц без истории, точные счётчики, окно без гонки (#2674)
|
2026-08-06 05:32:14 +05: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
|
fix(tradein/scraper): блок QRATOR у Домклика больше не помечает прогон успешным (#2657)
|
2026-08-05 23:37:48 +05:00 |
|
test_domrf_kapremont_loader.py
|
fix(tradein/ingest): 4 data-integrity дефекта в бэкфилле годов и импорте ДКП
|
2026-07-12 22:12:31 +03:00 |
|
test_ekb_geoportal_ingest.py
|
chore(tradein/geocoder): удалить Яндекс-геокодер (#2593)
|
2026-07-31 21:22:09 +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_analogs_display_consistency.py
|
fix(tradein/estimator): displayed analog cards match n_analogs + cross-source dedup (#2518)
|
2026-07-13 20:19:20 +00: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/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +00:00 |
|
test_estimator_dedup_cross_source_2087.py
|
chore(tradein): разбор мёртвого кода — подключить, удалить или задокументировать (#2674)
|
2026-08-06 05:00:36 +05: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
|
fix(tradein): area-бакеты в asking→sold — и расчёт, и применение (#2620) (#2648)
|
2026-08-05 08:11:04 +00:00 |
|
test_estimator_expected_sold_clamp.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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_headline_sufficiency.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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_implausible_year.py
|
fix(tradein/estimate): не применять хедонику к неправдоподобному году постройки
|
2026-08-02 14:04:11 +03:00 |
|
test_estimator_imv_blend.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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_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
|
fix(tradein/estimator): СберИндекс — только вторичка + confidence dispersion-ceiling (R2 H1+H2)
|
2026-07-12 22:03:59 +03:00 |
|
test_estimator_quarter_index.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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
|
fix(tradein): честный радиус поиска аналогов на карте v2 (#2632) (#2643)
|
2026-08-05 06:13:58 +00:00 |
|
test_estimator_range_floor.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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): area-бакеты в asking→sold — и расчёт, и применение (#2620) (#2648)
|
2026-08-05 08:11:04 +00:00 |
|
test_estimator_repair_coef.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +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
|
chore(tradein): удалить остатки источника N1 (#2593)
|
2026-07-31 21:01:47 +03: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_tier_s_house_boundary.py
|
fix(tradein/estimator): граница номера дома в подборе аналогов «тот же дом» (#2534)
|
2026-07-26 22:07:00 +00:00 |
|
test_estimator_yandex_integration.py
|
fix(tradein): панорама для страниц без истории, точные счётчики, окно без гонки (#2674)
|
2026-08-06 05:32:14 +05: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
|
chore(tradein/geocoder): удалить Яндекс-геокодер (#2593)
|
2026-07-31 21:22:09 +03:00 |
|
test_geocoder_bbox.py
|
chore(tradein/geocoder): удалить Яндекс-геокодер (#2593)
|
2026-07-31 21:22:09 +03:00 |
|
test_geocoder_cadastral_matcher.py
|
fix(tradein/geocoder): строгий матч литеры дома + починка DaData region-фильтра (#2622)
|
2026-08-02 12:06:44 +00:00 |
|
test_geocoder_city_hint.py
|
fix(tradein/geocode): гейт мусорного города вынести в общий хелпер и прошить в admin-путь (#2603)
|
2026-08-05 20:20:41 +05:00 |
|
test_geocoder_nominatim_lookup.py
|
chore(tradein/geocoder): удалить остатки скриптов Яндекс-геокодера, часть 3 (#2593)
|
2026-07-31 23:16:19 +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
|
fix(tradein/matching): снять слияние по ГАР-GUID, починить приёмник кадастра и keeper (#2674)
|
2026-08-06 05:11:47 +05: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_house_imv_params_honesty.py
|
fix(tradein/imv): счётчики прогона в total_seen/new_count + лог дрейфа ремонта (#2674)
|
2026-08-06 00:58:11 +05:00 |
|
test_identity_store.py
|
feat(tradein): DSN к БД auth собирается из AUTH_DB_PASSWORD, а не дублирует секрет
|
2026-08-02 12:05:41 +03: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/tests): тесты авторизации проверяют настоящий guard + реальный рендер PDF (#2541)
|
2026-07-26 23:04:43 +00:00 |
|
test_kit_browser_fetcher_proxy_pool.py
|
fix(tradein/proxy): доводить сигнал бана площадки до пула (#2600 п.1) (#2653)
|
2026-08-05 11:37:35 +00:00 |
|
test_kit_serp_proxy_pool.py
|
chore(tradein): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00:00 |
|
test_listing_source_snapshot.py
|
fix(tradein): убрать невыводимые события, развести «снято» и «протухло» (#2674)
|
2026-08-06 03:01:05 +05:00 |
|
test_listings_city_from_sweep.py
|
fix(tradein): бэкфилл-чистка неверных oblast-меток city для yandex/cian (#2628) (#2646)
|
2026-08-05 07:13:28 +00:00 |
|
test_location_index_endpoint.py
|
fix(tradein/location): заменить сломанный коэффициент локации на калиброванный индекс (#2531)
|
2026-07-26 21:48:15 +00:00 |
|
test_matching.py
|
fix(tradein/matching): снять слияние по ГАР-GUID, починить приёмник кадастра и keeper (#2674)
|
2026-08-06 05:11:47 +05:00 |
|
test_matching_tier_reachability_2674.py
|
fix(tradein/matching): снять слияние по ГАР-GUID, починить приёмник кадастра и keeper (#2674)
|
2026-08-06 05:11:47 +05: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_migration_189_account_estimate_usage_nonnegative.py
|
fix(tradein): откат транзакции в backfill + неотрицательный счётчик квот (#2538)
|
2026-07-26 22:21:08 +00:00 |
|
test_migration_191_account_quota_unlimited_flag.py
|
feat(tradein/auth): восстановить доступ praktika + безлимит через данные вместо хардкода (#2544)
|
2026-07-26 23:29:53 +00:00 |
|
test_migration_197_backfill_listings_city_from_url.py
|
fix(tradein/geocode): бэкфилл listings.city из слага города в URL Авито (#2594)
|
2026-08-01 01:46:03 +03:00 |
|
test_migration_200_region_code_foreign_cities.py
|
fix(tradein/data): убрать ложный region_code=66 у объявлений чужих городов (#2604)
|
2026-08-01 21:52:00 +03:00 |
|
test_migration_201_purge_dead_mobileproxy_proxies.py
|
chore(tradein/proxy): выпилить мёртвые узлы mobileproxy и их ключи из пула (#2613) (#2614)
|
2026-08-01 20:05:06 +00:00 |
|
test_migration_204_cian_oblast_sweeps_secondary.py
|
fix(tradein/scraper): исключить Верхнюю Пышму из вторички Циана — грязная городская метка
|
2026-08-02 14:07:56 +03:00 |
|
test_migration_205_sales_vs_listings_city_filter.py
|
fix(tradein/ui): городской фильтр в витрине «сделки против объявлений» (#2583 H4) (#2627)
|
2026-08-02 11:54:33 +00:00 |
|
test_migration_206_scrape_schedules_cut_wasteful_load.py
|
chore(tradein/scraper): срезать бесполезную нагрузку — темп cian_full_load и джобы с нулевым выходом
|
2026-08-02 16:51:08 +03:00 |
|
test_migration_211_sales_vs_listings_segment_guard.py
|
fix(tradein): сегментный гард в «медианном торге», свежесть в индексе локации, честные админ-счётчики (#2660)
|
2026-08-05 22:39:48 +05:00 |
|
test_migrations_manifest.py
|
fix(tradein/deploy): миграции ДО подъёма app-контейнеров + manifest-инвариант (#2216) (#2228)
|
2026-07-02 21:03:37 +00:00 |
|
test_password.py
|
feat(tradein/auth): password hashing + session config foundation (#2550)
|
2026-07-30 09:40:51 +03:00 |
|
test_pdf_real_render.py
|
fix(tradein/tests): тесты авторизации проверяют настоящий guard + реальный рендер PDF (#2541)
|
2026-07-26 23:04:43 +00:00 |
|
test_pdf_security.py
|
fix(tradein/pdf): МЕРА branding + 4-page report, no empty pages (#2513)
|
2026-07-13 18:04:07 +00:00 |
|
test_pipeline_browser_routing.py
|
fix(tradein/avito): catch sidecar timeout/transport errors in SERP fetch → graceful banned, not crash (#2523)
|
2026-07-13 20:59:39 +00:00 |
|
test_pipeline_browserfetcher_environment.py
|
fix(tradein/scraper): не ходить через мёртвый запасной прокси (#2634)
|
2026-08-04 18:27:49 +00:00 |
|
test_proxy_pool_curl_paths.py
|
fix(tradein/proxy): доводить сигнал бана площадки до пула (#2600 п.1) (#2653)
|
2026-08-05 11:37:35 +00:00 |
|
test_ratelimit.py
|
feat(tradein/support): веб-чат поддержки — серверная часть поверх Telegram-моста (#2532)
|
2026-07-26 20:43:47 +00:00 |
|
test_rbac.py
|
chore(ci+rbac): auth/** в paths-фильтры + «Поиск домов» только у админа
|
2026-07-31 20:24:24 +03:00 |
|
test_request_audit.py
|
fix(tradein/security): утечка ключа прокси, аудит действий админа, отличимость неудачного входа, IDOR в заявке (#2536)
|
2026-07-26 22:42:15 +00:00 |
|
test_rosreestr_dedup_key.py
|
fix(tradein/ingest): 4 data-integrity дефекта в бэкфилле годов и импорте ДКП
|
2026-07-12 22:12:31 +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): отказ гейта — факт про выборку вместо обещания надёжности (#2666)
|
2026-08-06 00:16:13 +05:00 |
|
test_same_building_anchor.py
|
fix(tradein/estimate): не строить цену по одному-двум аналогам, не отдавать 0 ₽ (#2629)
|
2026-08-02 12:41:48 +00:00 |
|
test_same_building_match.py
|
fix(tradein/estimator): граница номера дома в подборе аналогов «тот же дом» (#2534)
|
2026-07-26 22:07:00 +00:00 |
|
test_sber_freshness_monitor.py
|
fix(tradein): чинит такт загрузки СберИндекса — иначе новый ERROR стал бы ложной тревогой (#2674)
|
2026-08-06 02:53:26 +05:00 |
|
test_sber_index.py
|
fix(tradein): сигналы о сбоях наконец становятся событиями, а протухание кук предупреждает заранее (#2674)
|
2026-08-06 02:29:11 +05:00 |
|
test_schedule_save_respects_interval_2674.py
|
fix(tradein): такт в сохранении расписания, position_in_serp невыразим (#2674)
|
2026-08-06 05:49:48 +00: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
|
fix(tradein/scraper): капча Cian и заглушки Yandex — banned, не done (#2625) (#2642)
|
2026-08-04 19:03:33 +00:00 |
|
test_scrape_skip_visibility.py
|
fix(tradein/scraper): фильтр skipped в админке + освежение схлопнутой строки (#2658)
|
2026-08-05 23:10:47 +05: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
|
fix(tradein/proxy): доводить сигнал бана площадки до пула (#2600 п.1) (#2653)
|
2026-08-05 11:37:35 +00:00 |
|
test_scraper_admin_apis.py
|
fix(tradein/admin): убрать показатели, которые не могут быть ненулевыми, и брать список источников из данных (#2674)
|
2026-08-06 03:34:18 +05:00 |
|
test_scraper_kit_group_c_backfill_kit_parity.py
|
chore(tradein): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00: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
|
chore(tradein): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00:00 |
|
test_scraper_kit_pipeline_parity2.py
|
fix(tradein/scraper): блок QRATOR у Домклика больше не помечает прогон успешным (#2657)
|
2026-08-05 23:37:48 +05:00 |
|
test_scraper_kit_providers_base.py
|
fix(tradein/scraper): не ходить через мёртвый запасной прокси (#2634)
|
2026-08-04 18:27:49 +00:00 |
|
test_scraper_kit_scheduler_parity.py
|
fix(tradein/scraper): пропуск расписания пишет строку прогона со статусом skipped (#2658)
|
2026-08-05 22:35:51 +05:00 |
|
test_scraper_proxy.py
|
chore(tradein): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00:00 |
|
test_scraper_settings.py
|
chore(tradein): деактивировать N1.ru scraper — источник переехал в Cian
|
2026-06-16 14:50:51 +03:00 |
|
test_search_api.py
|
fix(tradein/matching): честность тиров сопоставления домов (#2674)
|
2026-08-06 04:37:12 +05: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/tgbot): Telegram support-мост @MERAsupport_bot
|
2026-07-16 16:58:53 +03:00 |
|
test_serp_city_location_urls.py
|
fix(tradein/scraper): per-city SERP location for oblast city-sweep (#12) (#2525)
|
2026-07-13 21:41:07 +00:00 |
|
test_snapshot_writer.py
|
fix(tradein): такт в сохранении расписания, position_in_serp невыразим (#2674)
|
2026-08-06 05:49:48 +00: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_support.py
|
feat(tradein/support): чат поддержки без входа — экран логина и «доступа нет»
|
2026-07-31 16:04:51 +03:00 |
|
test_sweep_imv_phase.py
|
chore(tradein): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00:00 |
|
test_team_api.py
|
feat(tradein): переключаемый реестр людей — подготовка переезда «Меры» в БД auth [PR-2b/6]
|
2026-08-01 02:50:14 +03:00 |
|
test_tier_a_primary_1774.py
|
fix(tradein/estimator): гео-ограничение якорного тира — не брать чужие города (#2581)
|
2026-07-31 17:39:00 +03:00 |
|
test_trade_in_lead.py
|
fix(tradein/security): утечка ключа прокси, аудит действий админа, отличимость неудачного входа, IDOR в заявке (#2536)
|
2026-07-26 22:42:15 +00:00 |
|
test_user_events.py
|
feat(tradein/audit): request-audit middleware + estimate_request logging → user_events (#2519)
|
2026-07-13 20:09: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
|
fix(tradein): панорама для страниц без истории, точные счётчики, окно без гонки (#2674)
|
2026-08-06 05:32:14 +05: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): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00:00 |
|
test_yandex_valuation.py
|
chore(tradein): удалить мёртвые mobileproxy env-переменные и rotate-ip (#2616 шаги 2-3) (#2650)
|
2026-08-05 09:35:54 +00:00 |
|
test_yandex_valuation_save.py
|
fix(tradein): панорама для страниц без истории, точные счётчики, окно без гонки (#2674)
|
2026-08-06 05:32:14 +05:00 |
|
test_zhkh_flats_loader.py
|
fix(tradein): cadastre ЖКХ-fallback + COALESCE merge-key + median-floors guard
|
2026-06-29 01:32:48 +03:00 |