gendesign/backend/tests/api/v1
bot-backend 956b4db010
All checks were successful
CI / changes (pull_request) Successful in 8s
CI Trade-In / changes (pull_request) Successful in 7s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m58s
CI / backend-tests (pull_request) Successful in 17m23s
fix(ptica): достоверность видит зону ПЗЗ из НСПД, а не только из пустой таблицы (#2464)
_compute_confidence получал зону ТОЛЬКО из legacy-словаря `zoning`, который
питается таблицей pzz_zones_ekb. На проде она пуста — 0 строк (замер 19.08),
поэтому data_available там всегда False.

Настоящая зона живёт в nspd_zoning: территориальные зоны дампа НСПД, а для
участков в зазорах между зонами она синтезируется резолвером геопортала (см.
PR-A #financial-zoning-decouple). Из-за этого подскор «zoning» был 0.2 у КАЖДОГО
участка, а оговорка утверждала неправду.

Прогон analyze в прод-контейнере, участок 66:41:0402029:25:

    nspd_zoning.zone_code   = 'Ж-5'      <- зона известна
    zoning.data_available   = False
    confidence              = 0.61 medium
    подскор zoning          = 0.2
    оговорка: «ПЗЗ zone_code не известен — нельзя оценить разрешённое
               использование (G1 pending)»

Один и тот же ответ показывал зону Ж-5 и заявлял, что зона неизвестна. Подскоров
семь, цена в композите — (1.0 − 0.2)/7 = 0.114: 0.61 вместо 0.72.

Тесты переписаны после самопроверки: первая версия падала на origin/main с
TypeError, то есть красное означало «возможности нет», а не «значение неверно», и
контроли падали там же — контролями они не были. Теперь контроли не передают новый
аргумент и зелёные по обе стороны, а тест на уровне ручки красный ПО ПОВЕДЕНИЮ:
«ответ показывает зону Ж-5 и одновременно заявляет, что зона неизвестна». Он же
сторожит проводку — параметр можно добавить в функцию и забыть передать.

Переформатирование — от pre-commit ruff 0.7.4 (#2864), не моё.
2026-08-19 18:09:11 +05:00
..
__init__.py feat(cadastre): bulk_harvest worker + grid-walker + admin API (#168 PR3/5) (#171) 2026-05-15 13:31:32 +03:00
conftest.py test(analyze): авто-стаб geoportal зон-резолвера в api/v1 тестах (CI desync fix) 2026-06-24 04:33:17 +05:00
test_2464_confidence_zoning_source.py fix(ptica): достоверность видит зону ПЗЗ из НСПД, а не только из пустой таблицы (#2464) 2026-08-19 18:09:11 +05:00
test_2464g_noise_source_filter.py fix(ptica): шумовой скорер перестаёт считать водоёмы источниками шума (#2464-G) (#2931) 2026-08-19 12:41:59 +00:00
test_admin_cadastre.py refactor(security): убрать мёртвую проверку админского токена (#2775) (#2776) 2026-08-07 09:30:23 +00:00
test_admin_ekburg_permits.py refactor(security): убрать мёртвую проверку админского токена (#2775) (#2776) 2026-08-07 09:30:23 +00:00
test_admin_jobs_settings.py fix(admin-jobs): UPSERT в PUT /admin/jobs/settings — не терять изменения (#1223) 2026-06-13 08:36:23 +00:00
test_admin_scrape_freshness.py fix(freshness): пороги nspd_geo под on-demand каденцию (убирает еженедельный ложный stale) (#2325) 2026-07-03 21:46:30 +00:00
test_admin_scrape_kn_catalog_waf_guard.py fix(scrapers): WAF-guard эндпоинтов + throttled catalog BrowserSession (#2445-D1/D2) (#2459) 2026-07-05 20:09:06 +00:00
test_analyze_competitors_status.py fix(ptica): границы правдоподобия у средней цены конкурента (#2464-D) (#2863) 2026-08-13 11:57:03 +00:00
test_analyze_inline_weights.py fix(site-finder): метка источника весов выводится из результата резолва, а не из входа (#2811) (#2817) 2026-08-10 10:34:39 +00:00
test_analyze_market_price.py fix(analytics): recommend_mix success-boost regression from view 172 (#1955) 2026-06-27 15:49:40 +05:00
test_analyze_osrm_distances.py fix(report): newbuild-consistent district median + obj_class dedup (#1953) 2026-06-27 15:10:49 +05:00
test_analyze_parcel_meta.py fix(ptica): шумовой скорер перестаёт считать водоёмы источниками шума (#2464-G) (#2931) 2026-08-19 12:41:59 +00:00
test_analyze_recent_permits.py fix(report): newbuild-consistent district median + obj_class dedup (#1953) 2026-06-27 15:10:49 +05:00
test_analyze_zoning_regulation.py fix(honesty): true competitors/neighbors totals + permits truncation disclosure (#2464 cluster B) (#2471) 2026-07-08 08:31:02 +00:00
test_chat.py feat(chat): tool get_parcel_info — курируемый градрегламент/ЗОУИТ/ЕГРН в контекст чата (#2366) 2026-07-04 01:24:42 +00:00
test_concept_recompute.py fix(generative): forward genuine price_source through /recompute (#1965 Stage 2a) 2026-06-28 00:33:59 +05:00
test_custom_pois.py fix(honesty): true competitors/neighbors totals + permits truncation disclosure (#2464 cluster B) (#2471) 2026-07-08 08:31:02 +00:00
test_insights.py feat(insights): manual-entry Insight entity CRUD + §19 audit (#948 part A) 2026-06-08 12:41:39 +05:00
test_locations.py feat(location): district-level Location entity + indices (#948 part B) 2026-06-08 13:28:19 +05:00
test_market_pulse_and_neighbors_honesty.py fix(honesty): true competitors/neighbors totals + permits truncation disclosure (#2464 cluster B) (#2471) 2026-07-08 08:31:02 +00:00
test_osrm_per_category.py feat(analyze): per-category OSRM routing (foot vs driving) (#39 A3) 2026-06-27 04:30:25 +05:00
test_own_projects.py feat(site-finder): own-portfolio data source for §25.3 cannibalization (#1169 PR1) 2026-06-08 16:21:53 +05:00
test_parcel_best_layouts.py feat(best-layouts): атрибуция velocity по ядру комплекса (#2177 шаг 2b) (#2239) 2026-07-02 22:41:25 +00:00
test_parcel_by_bbox.py fix(analyze): district KeyError 500 in #994 persist + revive by-bbox tests 2026-06-03 18:04:37 +05:00
test_parcel_competitors.py fix(site_finder): SAVEPOINT-isolate DB errors across cluster A (#2464) (#2465) 2026-07-07 12:50:11 +00:00
test_parcel_connection_capacity.py feat(site-finder): Celery + §3 точки выхода газосети (#2119 B2, PR-4/4 — финал формы-6) (#2251) 2026-07-03 04:26:41 +00:00
test_parcel_connection_points.py feat(parcels): connection-points endpoint (Forgejo #115 Phase 1 backend) (#190) 2026-05-16 05:58:27 +00:00
test_parcel_neighbor_buildings.py feat(concept): 3D-макет окружения — соседние здания из кадастра в §7 (#2180) (#2210) 2026-07-02 19:33:44 +00:00
test_parcel_report.py fix(report): дата сборки в POST-ответе на fast-path из кэша (последний хвост R2 #2259) (#2347) 2026-07-03 23:44:19 +00:00
test_parcel_snapshot_exclude_dev.py feat(site-finder): snapshot.pdf exclude_dev param — hide competitor by developer name 2026-06-18 15:23:28 +03:00
test_parcel_utility_infrastructure.py feat(site-finder): OSM engineering-networks loader + endpoint (#1746) (#1930) 2026-06-26 20:01:00 +00:00
test_parcels_forecast.py fix(report): newbuild-consistent district median + obj_class dedup (#1953) 2026-06-27 15:10:49 +05:00
test_poi_detail_from_tags.py feat(site-finder): §1 POI-точки карты показывают максимум информации (#2110) 2026-06-30 12:42:13 +00:00
test_run_history_and_response_contract.py feat(gisogd66): permits_nearby — точный радиус-запрос РНС/РВЭ (#2367 PR-2, backend-half) (#2401) 2026-07-04 09:59:49 +00:00