|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 9s
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 2m34s
CI / backend-tests (pull_request) Successful in 17m29s
`risks.geology_risk_label` назывался геологическим риском, а вычислялся так:
high — если подтопление
medium — если шум ≥ 65 дБ
low — иначе
Геологии в нём не было ни одного бита. При этом `cad_risk_zones` пуста
(0 строк, писателя нет — #2934 п.6), поэтому подтопление приходило только
из OSM-прокси «река ближе 200 м». На тихом участке без реки поле ВСЕГДА
говорило «low» — зелёный вердикт, ни разу не подкреплённый проверкой
геологии.
Поле убрано, а не переименовано: соседний блок `geology` честно отдаёт
`data_available: false`, когда данных нет. Замена не нужна.
Удаление поля из публичного ответа обосновано замером, а не словом:
потребителей нет ни в backend, ни во фронте, ни в §19-allowlist чата, ни
в экспортёрах; в схеме `risks: dict[str, Any]`, поэтому OpenAPI не
меняется. На это поставлен отдельный тест, который перечитывает дерево
исходников — иначе обоснование держалось бы на моём слове.
Двусторонне: против origin/main три теста красные («метка всё ещё
выдаётся», «шум по-прежнему участвует в риск-блоке», «поле где-то ещё
читается»). Контроли зелёные с обеих сторон: измеренный `noise_score`
остаётся на месте, `flood_zone` тоже (его судьба — отдельный пункт
задачи).
Контроль подмены отдельно: тест запрещает словесные градации риска в
блоке, иначе «починка» переименованием оставила бы тот же обман.
Проверка потребителей отличает комментарий от использования — иначе она
краснеет на собственном объяснении правки (на это я наступал трижды за
сутки, см. соседние PR).
pytest backend/tests/api/ — 377 passed, 1 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| conftest.py | ||
| test_2464_confidence_zoning_source.py | ||
| test_2464_manual_list_validation.py | ||
| test_2464_parcels_savepoint_pair.py | ||
| test_2464_resume_geo_job_guard.py | ||
| test_2464g_noise_source_filter.py | ||
| test_2934_no_fake_geology_label.py | ||
| test_admin_cadastre.py | ||
| test_admin_ekburg_permits.py | ||
| test_admin_jobs_settings.py | ||
| test_admin_scrape_freshness.py | ||
| test_admin_scrape_kn_catalog_waf_guard.py | ||
| test_analyze_competitors_status.py | ||
| test_analyze_inline_weights.py | ||
| test_analyze_market_price.py | ||
| test_analyze_osrm_distances.py | ||
| test_analyze_parcel_meta.py | ||
| test_analyze_recent_permits.py | ||
| test_analyze_zoning_regulation.py | ||
| test_chat.py | ||
| test_concept_recompute.py | ||
| test_custom_pois.py | ||
| test_insights.py | ||
| test_locations.py | ||
| test_market_pulse_and_neighbors_honesty.py | ||
| test_osrm_per_category.py | ||
| test_own_projects.py | ||
| test_parcel_best_layouts.py | ||
| test_parcel_by_bbox.py | ||
| test_parcel_competitors.py | ||
| test_parcel_connection_capacity.py | ||
| test_parcel_connection_points.py | ||
| test_parcel_neighbor_buildings.py | ||
| test_parcel_report.py | ||
| test_parcel_snapshot_exclude_dev.py | ||
| test_parcel_utility_infrastructure.py | ||
| test_parcels_forecast.py | ||
| test_poi_detail_from_tags.py | ||
| test_run_history_and_response_contract.py | ||