..
core
feat(tradein/scraper): cooperative SIGTERM-drain for graceful deploy ( #1182 Phase 2)
2026-06-28 19:52:09 +03:00
fixtures
fix(mera/estimate): перефит хедоники поверх area-бакетного ratio — крупное жильё занижалось на 21% ( #3255 )
2026-08-29 20:19:27 +00:00
matching
fix(tradein/yandex): снести признак «панорама» — его нет на площадке ( #2851 )
2026-08-12 20:44:11 +00:00
scrapers
fix(tradein/proxy): бан площадки рапортует только фетчер — ротация больше не банит свежий узел
2026-09-05 23:25:19 +05:00
scripts
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
services
fix(tradein/proxy): успешный fetch затирал exit_ip и latency_ms в NULL ( #3283 ) ( #3305 )
2026-08-31 14:53:33 +00:00
support
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
tasks
fix(tradein): недогруженная карточка Яндекса — отказ, а не успех ( #3191 )
2026-09-05 23:59:15 +05: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
feat(mera/b2c): анти-абуз для анонимного трафика — этап 2 из 8 ( #2546 )
2026-08-25 16:27:02 +00:00
skip_allowlist.txt
fix(tests): объявить два живых теста #3063 в skip_allowlist ( #3069 )
2026-08-23 22:14:49 +00:00
test_781_quality_gate.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_930_scheduler_resume_checkpoint.py
chore(tradein): две ручки ротации, которых не осталось читателей, и врущий комментарий над ними
2026-08-29 17:07:04 +03:00
test_1781_secondary_only_param.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2625_run_that_did_nothing.py
fix(tradein/scraper): прогон, у которого отказал каждый якорь, перестаёт быть успехом ( #2625 ) ( #2813 )
2026-08-10 09:36:23 +00:00
test_2657_domclick_proxy_pool.py
fix(tradein/domclick): свип ходит через прокси-пул, а отказ узла не обнуляет прогон ( #2657 ) ( #2796 )
2026-08-09 17:21:49 +00:00
test_2670_stale_source_digest.py
fix(scheduler): мерить свежесть источника данными, а не статусом прогона
2026-09-06 00:02:21 +05:00
test_2670_streak_and_partial_coverage.py
fix(tradein/domclick): свип ходит через прокси-пул, а отказ узла не обнуляет прогон ( #2657 ) ( #2796 )
2026-08-09 17:21:49 +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/quality): витрина перестаёт рапортовать «доля с кадастром» ( #2674 ) ( #2850 )
2026-08-12 20:37:16 +00:00
test_2674_writers_honor_schema.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2677_house_anchor_repair_basis.py
fix(mera-public): публичная копия — сервис не называет себя оценщиком, площадки-источники не названы
2026-09-03 09:50:41 +03:00
test_2678_house_type_canon.py
fix(tradein/houses): camelCase-типы домов приводятся к канону у источника ( #2678 ) ( #2719 )
2026-08-06 09:55:54 +00:00
test_2686_ban_kind_split.py
chore(tradein): две ручки ротации, которых не осталось читателей, и врущий комментарий над ними
2026-08-29 17:07:04 +03:00
test_2687_domclick_ban_kind.py
fix(tradein/domclick): распознанный QRATOR-блок свипа — ban_kind='platform', не 'unknown' ( #2687 ) ( #2832 )
2026-08-12 20:55:05 +00:00
test_2687_pool_exhaustion_keeps_checkpoint.py
chore(tradein): две ручки ротации, которых не осталось читателей, и врущий комментарий над ними
2026-08-29 17:07:04 +03:00
test_2698_imv_sidecar_wiring.py
fix(tradein/imv): домовая оценка ходит в сайдкар через пул, а не через чужой env-прокси ( #2698 ) ( #2708 )
2026-08-06 06:52:15 +00:00
test_2700_cian_detail_403_node.py
fix(tradein/cian): 403 снимает узел с выдачи, а не гаснет в return None ( #2700 ) ( #2821 )
2026-08-10 11:29:19 +00:00
test_2702_run_timestamps.py
fix(tradein/scraper): отметки времени прогона перестают замерзать в его же транзакции ( #2702 ) ( #2718 )
2026-08-06 09:55:50 +00:00
test_2703_zero_result_watchdog.py
fix(tradein/scraper): сторож «ноль результатов» перестаёт читать «не измерено» как ноль ( #2703 ) ( #2713 )
2026-08-06 08:28:59 +00:00
test_2723_browser_probe.py
fix(tradein/proxy): проба спрашивает каждую площадку, вердикт пишется на пару «узел × источник» ( #2800 B) ( #2803 )
2026-08-09 18:28:37 +00:00
test_2725_heartbeat_in_batch.py
fix(tradein/cian): показать, ЧТО пришло вместо состояния ЖК-страницы, и честно закрывать нулевой прогон ( #2767 ) ( #2768 )
2026-08-07 08:06:25 +00:00
test_2731_listing_sources_timestamps.py
fix(tradein/matching): listing_sources датируется построчно, а не стартом транзакции ( #2731 ) ( #2743 )
2026-08-06 16:35:29 +00:00
test_2731_observation_timestamps.py
fix(tradein/scrapers): метка наблюдения — время строки, а не старта транзакции ( #2731 ) ( #2742 )
2026-08-06 16:19:56 +00:00
test_2764_ban_kind_no_default.py
fix(tradein/scrapers): диагноз блока терялся при схлопывании, а в алерт шла непроверенная причина ( #3183 )
2026-08-28 17:15:02 +00:00
test_2767_cian_waf_block.py
fix(tradein/cian): Циан переименовал MFE карточки ЖК — читать оба имени ( #2767 ) ( #2804 )
2026-08-09 18:41:02 +00:00
test_2767_newbuilding_parse_miss.py
fix(tradein/newbuilding): счётчики записи различают вставку и обновление ( #2807 ) ( #2809 )
2026-08-10 08:50:56 +00:00
test_2800_per_source_probe.py
fix(tradein/proxy): проба Домклика спрашивает защищённый путь, а не robots.txt ( #2855 ) ( #2856 )
2026-08-13 06:02:38 +00:00
test_2807_write_counters_honesty.py
fix(tradein/newbuilding): счётчики записи различают вставку и обновление ( #2807 ) ( #2809 )
2026-08-10 08:50:56 +00:00
test_2830_pool_bypass_tails.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2857_search_mv_placeholder_columns.py
chore(tradein/db): убрать три колонки-заглушки витрины поиска ( #2857 ) ( #2858 )
2026-08-13 07:25:43 +00:00
test_2860_yandex_sweep_run_status.py
fix(tradein): фильтр выдачи Яндекса мёртв — slug ЖК ищем по странице объекта ( #2860 ) ( #2923 )
2026-08-19 08:37:40 +00:00
test_2899_market_percentile.py
feat(tradein): позиция квартиры внутри когорты аналогов — перцентиль ( #2899 ) ( #2926 )
2026-08-19 10:08:18 +00:00
test_2924_yandex_resolve_tried_at.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2936_unknown_attr_penalty.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2953_nominatim_throttle.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2992_upsert_unchanged_gate.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_2996_mislocated_houses_watchdog.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_3033_avito_native_secondary_filter.py
feat(tradein/avito): путь вторички для якорного и citywide-обхода ( #3033 , follow-up) ( #3042 )
2026-08-21 15:33:22 +00:00
test_3036_detail_house_params_to_houses.py
feat(tradein/avito): house-поля с детальной страницы доезжают в houses ( #3036 ) ( #3040 )
2026-08-21 14:48:36 +00:00
test_3044_avito_439_classified_as_block.py
fix(avito): считать HTTP 439 блокировкой, а не концом выдачи ( #3065 )
2026-08-23 21:49:35 +00:00
test_3044_enriched_result_key.py
fix(tradein/observability): результат detail-бэкфиллов доезжает до колонки total_seen ( #3044 )
2026-08-26 12:23:19 +05:00
test_3045_detail_backfill_browser_proxy.py
fix(tradein/avito): браузерный бэкфилл ходил мимо пула прокси
2026-08-27 15:58:26 +03:00
test_3051_houses_region_code.py
feat(tradein/matching): region_code у houses — вывод, а не выдумка ( #3051 п.4)
2026-08-27 13:51:48 +05:00
test_3051_region_registry.py
feat(tradein/geo): реестр регионов — единственный источник гео-границ ( #3051 , шард 1a)
2026-08-26 18:39:28 +05:00
test_3063_pro_seller_from_agency.py
feat(tradein/yandex): is_pro_seller выводится из агентского блока + бэкфилл 4469 строк ( #3063 п.2)
2026-08-26 12:48:18 +05:00
test_3063_seller_fields_not_eroded.py
fix(scraper-kit): бедный re-scrape больше не стирает признаки продавца ( #3067 )
2026-08-23 21:52:38 +00:00
test_3074_avito_anchor_checkpoint.py
feat(tradein/scraper): чекпоинт по якорям для avito_city_sweep ( #3074 )
2026-08-26 14:52:46 +03:00
test_3074_avito_newbuilding_checkpoint.py
feat(tradein/scraper): чекпоинты для avito_newbuilding_sweep — страница как единица ( #3074 )
2026-08-28 00:10:56 +03:00
test_3074_checkpoint_survives_claim.py
fix(tradein/scheduler): чекпоинт предшественника переживает обрыв до первой новой корзины ( #3074 )
2026-08-26 12:35:44 +05:00
test_3074_cian_anchor_checkpoint.py
feat(tradein/scraper): чекпоинт по якорям для cian_city_sweep ( #3074 )
2026-08-26 17:21:58 +03:00
test_3074_yandex_sweep_checkpoint.py
feat(tradein/yandex): чекпоинты для yandex_city_sweep — combo как единица возобновления ( #3074 )
2026-08-26 12:43:58 +05:00
test_3082_estimate_concurrency_cap.py
test(tradein): гонка на sleep(0.05) вешала тест потолка оценок на 120с ( #3270 )
2026-08-30 12:02:45 +03:00
test_3118_domclick_checkpoint.py
feat(tradein/domclick): чекпоинты для city_sweep — корзина как единица возобновления ( #3118 , #3074 )
2026-08-27 16:52:44 +05:00
test_3118_domclick_no_proxy.py
fix(tradein/domclick): исчерпание пула прокси свипа теперь infra-бан, не отказ сбора
2026-08-28 00:54:48 +03:00
test_3118_domclick_warm_context.py
fix(tradein/domclick): свип брал BFF навигацией браузера — теперь подзапросом ( #3264 )
2026-08-30 11:24:28 +03:00
test_3122_boot_reap.py
feat(tradein/scheduler): boot-reap — прогоны предыдущего контейнера снимаются на старте ( #3122 )
2026-08-27 14:17:42 +05:00
test_3154_query_secret_scrub.py
fix(tradein): маскировать секрет и в параметрах с префиксом ( #3154 )
2026-09-05 23:03:16 +05:00
test_3168_backfill_cursor_resume.py
fix(tradein/ingest): rosreestr_dkp_import курсор переживает рестарт ( #3168 )
2026-08-28 01:08:21 +03:00
test_3170_yandex_combo_checkpoint.py
fix(tradein/yandex): чекпоинт combo ставился до save_listings, не после
2026-08-28 00:48:55 +03:00
test_3191_yandex_detail_completeness.py
fix(tradein): маркер полноты — encryptedPhones ИЛИ redirectPhones ( #3191 )
2026-09-06 00:14:43 +05:00
test_3194_hide_sql_parameters.py
fix( #3194 ): hide_parameters=True на всех движках, include_local_variables=False у scheduler
2026-08-30 14:53:41 +05:00
test_3196_cian_ban_kind.py
fix(tradein/scrapers): диагноз блока брался из текстовых маркеров чужой площадки, а не из HTTP-статуса ( #3196 )
2026-08-28 23:21:54 +03:00
test_3196_domclick_ban_kind.py
fix(tradein/domclick): отказ с кодом 401 классифицировался как причина неизвестной природы ( #3196 )
2026-08-29 12:19:18 +03:00
test_3196_yandex_ban_kind.py
fix(tradein): недогруженная карточка Яндекса — отказ, а не успех ( #3191 )
2026-09-05 23:59:15 +05:00
test_3197_domclick_proxy_pool_wiring.py
fix(tradein/domclick): backfill ходил в сайдкар мимо прокси-пула ( #3197 ч.1)
2026-08-29 15:26:14 +03:00
test_3234_house_facts_fallback.py
feat(mera/estimate): характеристики дома из справочника, а не только из формы ( #3242 )
2026-08-29 18:06:17 +00:00
test_3251_avito_warm_context.py
feat(tradein/avito): бан площадки не менял IP — прогон добивался в тот же забаненный адрес ( #3283 ) ( #3313 )
2026-09-01 08:05:48 +00:00
test_3253_domclick_house_fields.py
fix(tradein/domclick): дом-поля едут в словаре ДОМ.РФ, а не сырьём Домклика
2026-09-05 23:17:50 +05:00
test_3257_house_facts_endpoint.py
feat(mera/estimate): ручка фактов дома для предзаполнения формы + гейт «этаж не выше дома» ( #3257 )
2026-08-29 20:34:00 +00:00
test_3264_domclick_sweep_cookies.py
fix(tradein/domclick): свип ходил на QRATOR без кук и вис на PoW каждым запросом ( #3264 )
2026-08-30 09:40:21 +03:00
test_3264_sweep_subresource_mode.py
fix(tradein/domclick): свип брал BFF навигацией браузера — теперь подзапросом ( #3264 )
2026-08-30 11:24:28 +03:00
test_3267_block_marker_vs_listing_text.py
fix(tradein/domclick): «система защиты от протечек» в объявлении читалась как блок QRATOR
2026-08-30 11:49:47 +03:00
test_3283_avito_sidecar_ban_is_platform_ban.py
fix(tradein/proxy): бан площадки рапортует только фетчер — ротация больше не банит свежий узел
2026-09-05 23:25:19 +05:00
test_3283g_rotate_on_platform_ban.py
feat(tradein/avito): бан площадки не менял IP — прогон добивался в тот же забаненный адрес ( #3283 ) ( #3313 )
2026-09-01 08:05:48 +00:00
test_3284_cian_detail_backfill_queue.py
feat(tradein/cian): у Циана не было добора карточек — только побочный эффект задачи про историю ( #3284 )
2026-08-30 15:34:36 +03:00
test_3288_avito_ban_per_source.py
fix(tradein/proxy): бан площадки рапортует только фетчер — ротация больше не банит свежий узел
2026-09-05 23:25:19 +05:00
test_3288b_block_kind_ratio.py
fix(tradein): понижать статус только у прогона, который работу сделал ( #3288 )
2026-09-06 00:28:24 +05:00
test_3297_avito_detail_browser_status.py
fix(tradein/avito): browser-путь добора не смотрел на HTTP-статус — отказ площадки уходил в ошибку парсинга ( #3297 )
2026-08-31 14:16:47 +03:00
test_3315_avito_exhaustive_containment_skip.py
fix(avito): skip fully-covered price ranges before probing on resume
2026-09-05 23:06:26 +05:00
test_3319_citysweep_checkpoint.py
docs(scraper-kit): обоснование #3319 — что именно теряло чекпоинт
2026-09-02 14:53:02 +05:00
test_3332_domclick_counter_identity.py
fix(tradein/backfill): save-False у yandex/avito больше не теряет попытку — attempted == сумма исходов
2026-09-05 22:47:08 +05:00
test_3333_drain_mark_all_sweeps.py
fix(scraper-kit): метка дрейна interrupted=1 во всех city-свипах ( #3333 )
2026-09-05 22:44:46 +05:00
test_3338_backfill_counter_identity.py
fix(tradein): недогруженная карточка Яндекса — отказ, а не успех ( #3191 )
2026-09-05 23:59:15 +05:00
test_3355_drain_mark_full_loads.py
fix(scraper): дрейн domclick сохраняет чекпоинт, дрейн cian-detail помечается
2026-09-06 00:21:55 +05:00
test_3359_cian_exhaustive_containment_skip.py
fix(cian,yandex): skip fully-covered price ranges before probing on resume
2026-09-05 23:56:46 +05:00
test_3359_yandex_exhaustive_containment_skip.py
fix(yandex): degraded-бакет не зачитывается как пройденный
2026-09-06 00:13:11 +05:00
test_account_quota.py
feat(mera/b2c): анти-абуз для анонимного трафика — этап 2 из 8 ( #2546 )
2026-08-25 16:27:02 +00:00
test_admin_cian_session_endpoints.py
fix(tradein/admin): развести исходы проверки кук — бан не равен «плохим кукам» ( #2829 )
2026-08-11 06:08:16 +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_admin_yandex_session_endpoints.py
fix(tradein/scrapers): хранилище авторизованной сессии Яндекс.Недвижимости ( #3195 )
2026-08-28 19:02:05 +00:00
test_alerts_become_events.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00: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
Merge origin/main into fix/2656-anchor-ratio-freshness — конфликты: метки #2656→#2661 (main), импорт-union, baseline unrecorded=0 (перезахваченная фикстура)
2026-08-26 18:22:54 +05:00
test_audit_api.py
fix(tradein/auth): отказ по насыщению — до выборки из БД и с агрегированным следом ( #2715 ) ( #2734 )
2026-08-06 14:27:26 +00:00
test_auth_api.py
Merge pull request 'fix(tradein/rbac): 401-оракул закрыт — несуществующий путь под публичным префиксом отвечает так же, как любой другой мусор' ( #3352 ) from fix/3324-rbac-401-oracle into main
2026-09-05 18:19:27 +00: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_backfill_cadence.py
fix(tradein/avito): бэкфилл простаивал 23 часа из 24 — каденс был суточным
2026-08-22 14:57:20 +03:00
test_avito_detail_fields_3047.py
chore(tradein/avito): ссылки на реальный issue #3047 вместо выдуманного номера
2026-08-21 23:40:22 +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_offers_per_page.py
fix(tradein/avito): страница SERP отдаёт 60 карточек, а не 50
2026-08-21 17:38:55 +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/scrapers): не путать rows_inserted/processed с честным результатным ключом
2026-08-15 18:49:37 +03:00
test_backfill_wave2.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00: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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_backtest_sampling_spread.py
бэктест: режим выборки вразброс — ORDER BY id DESC садится на несколько улиц
2026-08-31 11:28:11 +05: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_ceiling_height_unify_2699.py
fix(tradein): свести высоту потолков к одной колонке ceiling_height_m ( #2779 )
2026-08-07 09:18:48 +00:00
test_cian_bti_house_persist.py
fix(tradein/matching): город развёртки доезжает до стража Tier-2a — межгородские склейки домов ( #2777 ) ( #2808 )
2026-08-10 08:51:14 +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_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): три прод-пути остались на chrome120, пока kit ушёл на chrome146
2026-08-27 18:18:05 +03:00
test_cian_state_parser.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_cian_views_parse.py
fix(tradein/yandex): просмотры режутся по разделителю тысяч + Циан молчит о непонятой фразе ( #2669 ) ( #2773 )
2026-08-07 08:44:48 +00:00
test_city_sweep.py
feat(tradein): вся Свердловская область — 40 городов в city-sweep ( #2879 )
2026-08-13 19:08:44 +00: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_consent_text_frontend_sync.py
fix(tradein/lead): кликабельная ссылка на политику ПДн в чекбоксе согласия
2026-08-14 15:29:49 +03:00
test_coverage_probe_endpoint.py
fix(mera/b2c): житель Серова получал «вы вне области», а подсказки игнорировали выбранный город
2026-08-16 13:03:19 +03:00
test_data_erasure.py
fix(tradein/privacy): нормализация телефона к каноническому РФ-виду при erasure ( #2547 )
2026-08-06 19:59:34 +03:00
test_deactivate_stale_avito.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_deactivate_stale_deactivation_cap.py
feat(tradein/deactivate-stale): страховочные рельсы объёма снятия ( #3066 )
2026-08-24 08:44:32 +00:00
test_deactivate_stale_floor_degradation.py
feat(tradein/deactivate-stale): страховочные рельсы объёма снятия ( #3066 )
2026-08-24 08:44:32 +00:00
test_deactivate_stale_health_gate.py
fix(tradein): TTL-деактивация не исполняется, пока сбор по источнику лежит ( #2659 ) ( #2710 )
2026-08-06 08:40:41 +00:00
test_deactivate_stale_listings.py
fix(tradein/deactivate): resolve migration 264 renumber collision on merge with main
2026-08-15 21:13:41 +03:00
test_deactivate_stale_revisit_floor.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_deactivate_stale_ttl_cap.py
docs(tradein/deactivate): убрать неверное число из обоснования потолка
2026-08-15 21:00:42 +03:00
test_dead_code_sweep_2674.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00: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_defer_respects_interval_minutes_3312.py
fix(scheduler): defer уважает interval_minutes источника
2026-09-05 22:50:58 +05:00
test_dkp_corridor_as_of_2846.py
fix(tradein/dkp): «ФАКТИЧЕСКИЕ СДЕЛКИ» называют свой возраст, а не окно поиска ( #2847 )
2026-08-12 18:51:10 +00: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
feat(tradein/domklik): ЖК в свою колонку вместо только raw_payload ( #3076 )
2026-08-24 16:04:24 +00: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_consent_gate.py
chore(tradein/privacy): перенумерация миграций и merge main - разблокировка PR ( #2547 )
2026-08-06 15:56:02 +03:00
test_estimate_external_sources_background.py
feat(tradein/estimate): внешние оценки не ждутся в запросе — 9 секунд превращаются в 1
2026-08-22 15:51:31 +03:00
test_estimate_idor.py
feat(payments): роутер checkout/notify, статус-машина и выдача по capability-ссылке
2026-08-29 19:38:37 +05:00
test_estimate_rate_limit.py
feat(mera/b2c): анти-абуз для анонимного трафика — этап 2 из 8 ( #2546 )
2026-08-25 16:27:02 +00:00
test_estimate_revival.py
fix(tradein/estimate): отдавать фактический радиус подбора, а не выбор пользователя ( #2835 )
2026-08-12 12:48:18 +00: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
fix(tradein/sber): сторож мерит отставание загрузки, а не календарь ( #2846 ) ( #2849 )
2026-08-12 19:36:20 +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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_estimator_confidence_reliability_consistency.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_estimator_expected_sold_clamp.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_estimator_floor_optional.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_estimator_hedonic.py
fix(mera/estimate): перефит хедоники поверх area-бакетного ratio — крупное жильё занижалось на 21% ( #3255 )
2026-08-29 20:19:27 +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): завершить thin-market гейт IMV — Guard-1b и GET-путь ( #3323 )
2026-09-02 17:44:32 +05:00
test_estimator_imv_budget.py
feat(mera/b2c): анти-абуз для анонимного трафика — этап 2 из 8 ( #2546 )
2026-08-25 16:27:02 +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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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/estimate): залипший anchor_tier молча глушил IMV-blend и quarter-index
2026-08-17 10:54:07 +03: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
chore(ci): деплой на изменение ролей, ruff-гейт для МЕРЫ, удаление мёртвого workflow
2026-08-06 21:34:36 +03:00
test_estimator_quarter_from_own_coords.py
fix(tradein/estimate): не подставлять квартал соседа вместо квартала цели ( #2839 )
2026-08-12 15:55:24 +00:00
test_estimator_quarter_index.py
fix(tradein): завершить thin-market гейт IMV — Guard-1b и GET-путь ( #3323 )
2026-09-02 17:44:32 +05: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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_estimator_repair_coef.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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_search_radius_2632.py
fix(tradein/estimate): отдавать фактический радиус подбора, а не выбор пользователя ( #2835 )
2026-08-12 12:48:18 +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(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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_tier_s_house_boundary.py
fix(tradein/estimator): граница номера дома в подборе аналогов «тот же дом» ( #2534 )
2026-07-26 22:07:00 +00:00
test_estimator_yandex_integration.py
fix(tradein/yandex): снести признак «панорама» — его нет на площадке ( #2851 )
2026-08-12 20:44:11 +00:00
test_extract_short_addr.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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_freshness_by_data_3172.py
fix(scheduler): мерить свежесть источника данными, а не статусом прогона
2026-09-06 00:02:21 +05:00
test_freshness_filter_2656.py
test(2656): краснота на main — по значению, не ImportError
2026-08-26 18:25:54 +05:00
test_gar_flats_loader.py
fix(tests): починить и вычистить проверки, которые не исполнялись ни разу ( #2744 )
2026-08-06 16:57:28 +00:00
test_geo_precision.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_geocode_reverse_api.py
chore(tradein/geocoder): удалить Яндекс-геокодер ( #2593 )
2026-07-31 21:22:09 +03:00
test_geocode_suggest_address_join.py
fix(tradein): подсказки адреса — пустые части адреса выпадают, а не печатаются
2026-08-30 14:58:03 +05: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_city_substitution.py
fix(tradein/geocoder): инвариант «чужой топоним + результат внутри ЕКБ = недостоверно» ( #2590 ) ( #2837 )
2026-08-12 14:26:58 +00:00
test_geocoder_local_houses_fallback.py
fix(tradein/geocoder): stop apt number leaking into house + houses bbox/sibling guard
2026-08-15 18:50:17 +03:00
test_geocoder_nominatim_lookup.py
chore(tradein/geocoder): удалить остатки скриптов Яндекс-геокодера, часть 3 ( #2593 )
2026-07-31 23:16:19 +03:00
test_glitchtip_webhook.py
fix(tradein): не логировать секрет вебхука GlitchTip в access-log ( #3154 )
2026-09-05 22:51:57 +05:00
test_health_endpoint.py
fix(health): HEAD /health на верном бэкенде (Site Finder) + честные заголовки
2026-08-15 18:44:31 +03:00
test_history_scope.py
feat(tradein/history): вернуть все параметры оценки в GET /history ( #2420 )
2026-07-04 13:09:22 +00:00
test_honest_run_status_failed_ratio.py
fix(tradein/scrapers): не путать rows_inserted/processed с честным результатным ключом
2026-08-15 18:49:37 +03:00
test_house_dedup_merge.py
fix(tradein/dedup): остаток схлопывания домов становится измеряемым числом, а не оценкой ( #2690 ) ( #2820 )
2026-08-10 11:18:19 +00: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): «временная» ошибка снова временная — 1390 домов возвращаются в очередь ( #2843 )
2026-08-12 16:06:24 +00:00
test_house_imv_retry_stuck.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_identity_store.py
feat(tradein): DSN к БД auth собирается из AUTH_DB_PASSWORD, а не дублирует секрет
2026-08-02 12:05:41 +03:00
test_impersonate_single_source.py
fix(tradein/scrapers): три прод-пути остались на chrome120, пока kit ушёл на chrome146
2026-08-27 18:18:05 +03:00
test_imv_status_classification.py
imv: HTTP 429 больше не приговаривает дом навечно
2026-09-01 21:21:53 +05: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_browser_fetcher_status.py
fix(tradein/domclick): подтверждённый отказ площадки уехал в ветку «сбой транспорта» и перестал банить узел
2026-08-29 19:12:36 +03: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_landing_showcase_deals.py
fix(mera-landing): наличие схемы улицы входит в полноту строки витрины
2026-08-31 11:22:39 +05:00
test_landing_stats.py
fix(mera/landing): «Цена ДКП» — цена договора, а не произведение; экспозиция считает и Домклик
2026-08-30 00:10:36 +05:00
test_listing_segment_upsert_selfheal.py
fix(tradein/scraper): listing_segment самочинится при upsert вместо вечного NULL
2026-08-15 22:28:05 +03: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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_matching_tier_reachability_2674.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_me_brand.py
feat(tradein/v2): реальный display-профиль в TopNav через /me ( #2046 )
2026-07-03 22:55:12 +03:00
test_metrics.py
feat(observability): /metrics в обоих бэкендах — счётчики, задержка, дашборд
2026-08-26 11:30:18 +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(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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_migration_257_yandex_source_url_backfill.py
fix(tradein/yandex): 3535 source_url ведут на сайт застройщика — переписываем из offerId ( #2840 )
2026-08-12 15:33:31 +00:00
test_migration_262_oblast_city_sweeps_wave2.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_migration_numbering.py
fix(tradein): гейт номеров миграций берёт эталон из git, ручной манифест удалён
2026-08-07 14:35:28 +05:00
test_paid_retention_text_consistency.py
fix(tradein/payments): pre-flight должен ловить аномалию, не штатное состояние (review PR #2754 )
2026-08-06 22:49:09 +03:00
test_password.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_password_call_sites.py
test(tradein/auth): правило про синхронную сверку — сторожем, а не комментарием ( #2715 ) ( #2735 )
2026-08-06 14:35:32 +00:00
test_payments_notification.py
fix(tradein/payments): строгий разбор нотификации и отказ вместо догадок на враждебном входе
2026-08-06 15:48:57 +03:00
test_payments_receipt.py
feat(tradein/payments): подпись Token, клиент Т-Банка и сборка чека ( #2733 )
2026-08-06 12:36:57 +00:00
test_payments_router.py
fix(payments): обрыв соединения и Init без PaymentURL перестают запирать покупателя
2026-09-06 00:11:35 +05:00
test_payments_token.py
fix(tradein/payments): строгий разбор нотификации и отказ вместо догадок на враждебном входе
2026-08-06 15:48:57 +03:00
test_pdf_public_source_labels.py
fix(tradein/pdf): клиентский PDF не называет площадки-источники — «Источник N», как в веб-отчёте ( #3341 )
2026-09-03 11:58:45 +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): клиентский PDF не называет площадки-источники — «Источник N», как в веб-отчёте ( #3341 )
2026-09-03 11:58:45 +03: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_public_mera_api.py
fix(mera/public): Infinity/NaN во входе — 422, и бюджет считает такие запросы
2026-08-30 00:11:56 +05:00
test_public_mera_estimate.py
fix(mera/b2c): выключенная ручка расчёта подтверждала своё существование и печатала схему
2026-08-29 20:19:15 +05:00
test_purge_expired_trade_in_data.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_ratelimit.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_rbac.py
fix(rbac): анониму на admin-префиксе отвечать 404, а не 401
2026-09-06 00:51:09 +05:00
test_request_audit.py
fix(tradein/payments): тело нотификации не течёт в мониторинг и аудит, повторы банка не отбиваются лимитом
2026-08-07 16:17:59 +03:00
test_revisit_floor_lateral_lookup.py
fix(tradein/deactivate-stale): пол переобхода — LATERAL вместо equality-join по дате
2026-08-23 15:45:53 +03:00
test_role_single_source.py
test(tradein): прод-конфигурация ролей в приёмке #3316 + компромисс фолбэка
2026-09-02 14:59:14 +05: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): поштучный процент гаснет вместе со сводным, когда причина — сама пара ( #2672 ) ( #2774 )
2026-08-07 08:56:43 +00: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/sber): сторож мерит отставание загрузки, а не календарь ( #2846 ) ( #2849 )
2026-08-12 19:36:20 +00:00
test_sber_index.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00: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): сторож «ноль результатов» перестаёт читать «не измерено» как ноль ( #2703 ) ( #2713 )
2026-08-06 08:28:59 +00:00
test_scrape_skip_visibility.py
fix(tradein/scraper): отметки времени прогона перестают замерзать в его же транзакции ( #2702 ) ( #2718 )
2026-08-06 09:55:50 +00:00
test_scraped_at_bump_2206.py
fix(tradein/scrapers): метка наблюдения — время строки, а не старта транзакции ( #2731 ) ( #2742 )
2026-08-06 16:19:56 +00: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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_scraper_kit_group_c_backfill_kit_parity.py
fix(tradein/cian): обогащение ЖК падало не на разметке, а на сожжённом узле ( #2767 ) ( #2798 )
2026-08-09 17:38:40 +00:00
test_scraper_kit_newbuilding_endpoint.py
fix(tradein): фильтр выдачи Яндекса мёртв — slug ЖК ищем по странице объекта ( #2860 ) ( #2923 )
2026-08-19 08:37:40 +00:00
test_scraper_kit_pipeline_parity.py
chore(tradein): две ручки ротации, которых не осталось читателей, и врущий комментарий над ними
2026-08-29 17:07:04 +03:00
test_scraper_kit_pipeline_parity2.py
feat(tradein/scraper): чекпоинты для avito_newbuilding_sweep — страница как единица ( #3074 )
2026-08-28 00:10:56 +03:00
test_scraper_kit_providers_base.py
fix(tradein/scraper-kit): actualize avito fingerprint - impersonate/Sec-Fetch-Site/referer/cookie-check
2026-08-21 17:02:53 +03:00
test_scraper_kit_scheduler_parity.py
feat(mera/b2c): витринные метрики лэндинга считаются по проду
2026-08-29 18:45:26 +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): молча задеселекченный тест починен, deselect снят ( #2722 ) ( #2729 )
2026-08-06 11:30:42 +00:00
test_segment_guard_1186.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +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_init_wiring.py
fix(tradein/payments): тело нотификации не течёт в мониторинг и аудит, повторы банка не отбиваются лимитом
2026-08-07 16:17:59 +03:00
test_sentry_scrub.py
merge(tradein/payments): влить main в feat/tradein-payments-perimeter-hardening
2026-08-15 22:32:28 +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
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_street_deals_endpoint.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_street_scheme.py
feat(mera/b2c): улица сделки доезжает до витрины готовой схемой, а не геометрией
2026-08-29 23:25:44 +05: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_tgsupport_retry_budget.py
fix(tradein/support): один повтор терял каждое одиннадцатое сообщение в поддержку
2026-09-01 09:53:21 +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_version_api.py
feat(tradein): версионирование продукта — единый источник, подвал, PDF, /versions ( #2824 )
2026-08-10 16:00:54 +00:00
test_yandex_cian_backfill_cadence.py
chore(tradein/scheduler): добор карточек Яндекса и Циана шёл раз в сутки и простаивал
2026-08-31 14:17:12 +03:00
test_yandex_city_sweep.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_yandex_detail.py
fix(tradein/yandex): просмотры режутся по разделителю тысяч + Циан молчит о непонятой фразе ( #2669 ) ( #2773 )
2026-08-07 08:44:48 +00: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/yandex): снести признак «панорама» — его нет на площадке ( #2851 )
2026-08-12 20:44:11 +00: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_session.py
fix(tradein/scrapers): хранилище авторизованной сессии Яндекс.Недвижимости ( #3195 )
2026-08-28 19:02:05 +00:00
test_yandex_valuation.py
chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат ( #2864 ) ( #3022 )
2026-08-21 12:01:52 +00:00
test_yandex_valuation_save.py
fix(tradein/yandex): снести признак «панорама» — его нет на площадке ( #2851 )
2026-08-12 20:44:11 +00:00
test_zhkh_flats_loader.py
fix(tradein): cadastre ЖКХ-fallback + COALESCE merge-key + median-floors guard
2026-06-29 01:32:48 +03:00