gendesign/tradein-mvp/backend/tests/services
bot-backend c75206c348 fix(tradein/geocoder): local houses fallback + downgrade DaData CLEAN-disabled noise
28/1084 прод-оценок имели lat IS NULL — гарантированный ноль аналогов, клиент
не получал оценку вовсе. Дом уже был в houses (скрейпленные листинги), но не
резолвился ни geoportal/cad_buildings, ни Nominatim: разговорное/усечённое имя
улицы («Онуфриева» вместо ГАР-каноничного «Начдива Онуфриева») или отсутствующий
в вводе корпус («49» вместо реального «49к1»). Добавлен последний тир geocode()
с двумя defensive-допущениями (суффиксный матч улицы + опциональная догадка
«номер+к1») — при любой неоднозначности возвращает None, а не гадает; проверено
живыми прод-адресами (Онуфриева/Хрустальногорская резолвятся, Крестинского
корректно остаётся неоднозначным — два разных дома в houses под одним номером).

Отдельно: HTTP 403 «услуга CLEAN выключена на аккаунте» логировался как ERROR
на каждый /estimate (164 события) — это статичная конфигурация аккаунта, а не
сбой; понижено до WARNING (первый раз за процесс) + DEBUG на повторы, чтобы
ERROR продолжал значить настоящую проблему.
2026-08-15 18:08:09 +03:00
..
payments fix(tradein/payments): строгий разбор нотификации и отказ вместо догадок на враждебном входе 2026-08-06 15:48:57 +03:00
scrapers chore(tradein/scrapers): удалить весь legacy scrapers/ каталог — final E (#2397, #2277) 2026-07-04 15:58:15 +03:00
tgbot fix(tradein/tgbot): ограничение частоты на отправителя в мосте поддержки (#2543) 2026-07-26 23:16:57 +00:00
__init__.py feat(tradein): cadastral reverse geocode via main backend cad_buildings (#492) 2026-05-24 07:31:12 +00:00
test_cadastral_reverse.py chore(tradein/geocoder): удалить Яндекс-геокодер (#2593) 2026-07-31 21:22:09 +03:00
test_dadata.py fix(tradein/geocoder): local houses fallback + downgrade DaData CLEAN-disabled noise 2026-08-15 18:08:09 +03:00
test_estimator_precision.py feat(tradein): бейдж точности адреса (qc_geo) на карточке оценки (accuracy #1) 2026-05-28 15:37:33 +05:00
test_image_sanitizer.py fix(tradein/photos): защита от pixel-flood DoS в image_sanitizer 2026-07-12 22:12:12 +03:00
test_location_index.py fix(tradein): тест ловит копию константы, а не equality; честный комментарий про вклад свежести (#2660) 2026-08-05 23:13:22 +05:00
test_proxy_egress.py fix(tradein/proxy): учитывать историю банов при выборе egress-узла (#2877) 2026-08-13 17:47:01 +00:00
test_proxy_pool.py fix(tradein/proxy): упавшая проба присваивала себе бан боевого сбора (#2800) (#2805) 2026-08-09 20:13:10 +00:00
test_proxy_rotation.py fix(tradein/proxy): backup-узел должен быть пригоден + рычаг снятия бана (#2600 п.2) 2026-08-05 17:45:07 +05:00
test_trade_in_pdf_dual_price.py fix(tradein/pdf): МЕРА branding + 4-page report, no empty pages (#2513) 2026-07-13 18:04:07 +00:00