gendesign/backend/tests
bot-backend 3a13bce468
All checks were successful
CI / changes (pull_request) Successful in 11s
CI Trade-In / changes (pull_request) Successful in 11s
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 3m1s
CI / backend-tests (pull_request) Successful in 16m4s
fix(forecasting): savepoint db.execute failures to stop §22 session poisoning (#2464)
One layer's caught DB error left the shared §22 report Session in Postgres's
"aborted transaction" state with no rollback, silently emptying every later
layer on the same report. Wrap each failure point in db.begin_nested()
(SAVEPOINT): orchestrator._safe_call, macro_series _query_key_rate_monthly /
_query_inflation_monthly / _query_mortgage_monthly (per indicator),
special_indices._run (per index), and sales_series _query_source_a /
_query_source_b — so a sibling builder's failure no longer cascades.

Also close the RELEASE-SAVEPOINT trap: inner helpers that swallowed a
db.execute failure without their own savepoint left the tx aborted, so the
outer builder's savepoint failed at RELEASE (illegal in an aborted tx) and
poisoning still cascaded. Add savepoints at the inner catch sites —
special_indices._query_parcel_centroid and district_resolver._admin_names /
resolve_objective_districts.

Refs #2464 (cluster A session-poisoning).
2026-07-07 17:50:17 +05:00
..
api fix(scrapers): WAF-guard эндпоинтов + throttled catalog BrowserSession (#2445-D1/D2) (#2459) 2026-07-05 20:09:06 +00:00
fixtures feat(macro): land construction price index (СМР) via open Rosstat xlsx (#946) 2026-06-09 11:28:05 +05:00
integration fix(site_finder): correct best-layouts supply fan-out + objects-first perf 2026-06-27 10:45:19 +05:00
scrapers fix(backend): reservation_ingest пейсинг + короткоживущая DB-сессия (#2445-D4) (#2458) 2026-07-05 20:09:00 +00:00
scripts fix(backtest): add binomial significance gate to §9.6 verdict 2026-06-04 16:42:45 +05:00
services fix(forecasting): savepoint db.execute failures to stop §22 session poisoning (#2464) 2026-07-07 17:50:17 +05:00
smoke fix(parcels): _parse_floors handle int (post-migration #169) (#176) 2026-05-15 15:08:16 +03:00
sql feat(analytics): velocity-anomaly alerts (#17) + ARN ДДУ price indicator (#99) 2026-06-13 22:04:49 +05:00
workers fix(scrapers): rate-limit/backoff/circuit-breaker для ОКН EGRKN-скрапера (#2445-D3) (#2461) 2026-07-05 20:09:18 +00:00
__init__.py init 2026-04-25 13:45:19 +03:00
conftest.py test(rbac): test-mode bypass so api/v1 suite can authenticate (CI-rehab 1/3) 2026-06-03 18:29:20 +05:00
test_admin_weight_profiles.py test(suite): re-align drifted tests with current code (CI-rehab 2/3) 2026-06-03 19:05:43 +05:00
test_app_logging.py fix(backend): emit app.* INFO logs to stdout on the API process (#1926) 2026-06-27 07:43:49 +05:00
test_audit_middleware.py feat(insights): manual-entry Insight entity CRUD + §19 audit (#948 part A) 2026-06-08 12:41:39 +05:00
test_concepts_stub.py feat(generative): движок концепций Stage 1a/1b/1c (#54 #55 #56) 2026-06-13 21:32:32 +05:00
test_connection_capacity_loaders.py fix(vodokanal): column-aligned парсинг DOCX — реальные резервы вместо № п/п (#2119/#2126) (#2238) 2026-07-02 22:03:15 +00:00
test_eesk_reserve_loader.py feat(site-finder): ЕЭСК-резервы городских ПС/ТП + тепло из ФГИС ФАС (#2119 B2) (#2165) 2026-07-02 16:44:57 +00:00
test_eias_heat_loader.py fix(eias-heat): не терять резерв при одинаковых именах систем (#2119 B2) (#2191) 2026-07-02 18:34:42 +00:00
test_ekb_geoportal_client.py fix(sf): ekb_geoportal_client verify=False — росс-гос-CA не в trust-store контейнера (#1103) 2026-06-06 20:10:26 +00:00
test_ekgas_outlet_loader.py feat(ekgas): геокод точек выхода через DaData (#2119 B2, PR-3/4) (#2249) 2026-07-03 03:19:18 +00:00
test_gas_grs_loader.py fix(site-finder): три честности-фикса — B1 ГРС «выход №N» + околонуль + Росреестр-квартал (#2257) 2026-07-03 06:27:27 +00:00
test_gate_verdict.py fix(gate): area-gate ЗОУИТ utility-easement blocker (sub-17) — снять over-block 2026-06-24 14:45:59 +05:00
test_gisogd66_loader.py fix(gisogd66): битый 500-сегмент портала — no-retry карточек, circuit breaker, периодический commit (#2371) 2026-07-04 04:33:44 +00:00
test_health.py init 2026-04-25 13:45:19 +03:00
test_layout_signature.py feat(parcels): layout signature schemas + extractor (#113 PR A) (#193) 2026-05-16 07:52:34 +00:00
test_layout_tz_html.py feat(exporters): §4.2 supply-only блок в ТЗ-PDF (#2177) (#2260) 2026-07-03 06:38:23 +00:00
test_layout_tz_pdf.py fix(best-layouts): покрытие §4.2 в комплексах, не в сырых obj_id (#2177, шаг 1/3) (#2198) 2026-07-02 19:34:11 +00:00
test_network_obremenenie.py fix(gate): area-gate ЗОУИТ utility-easement blocker (sub-17) — снять over-block 2026-06-24 14:45:59 +05:00
test_network_zone_humanize.py feat(site-finder): позитив-разрез сетевых ЗОУИТ «сеть рядом с участком» (Фаза C2/C3) (#2281) 2026-07-03 08:18:24 +00:00
test_noise_loader.py feat(site_finder): routing POI decay (#41) + OSM utility distances (#44) + ЗОУИТ geom (#255bk) 2026-06-13 22:31:56 +05:00
test_nspd_client.py feat(nspd): get_feature_info FEATURE_COUNT=10 — multi-feature per point (#1080) 2026-06-06 18:18:07 +00:00
test_nspd_sync.py fix(#244): harvest_quarter — CAST CASE WHEN params (psycopg3 AmbiguousParameter) (#246) 2026-05-17 05:53:08 +00:00
test_ors_client.py feat(site_finder): routing POI decay (#41) + OSM utility distances (#44) + ЗОУИТ geom (#255bk) 2026-06-13 22:31:56 +05:00
test_osm_tp_geocoder.py feat(site-finder): OSM-геокод городских ТП/РП ЕКБ (#2119 B2, финальный хвост) (#2252) 2026-07-03 05:22:02 +00:00
test_osrm_client_local.py feat(analyze): per-category OSRM routing (foot vs driving) (#39 A3) 2026-06-27 04:30:25 +05:00
test_ping.py feat(backend): add /api/v1/ping liveness endpoint (#634) 2026-05-29 15:53:29 +00:00
test_poi_score.py fix(site-finder): correct POI-score mock shape+values, routing empty assert (#1486 review) 2026-06-17 20:47:01 +03:00
test_quarter_dump_lookup.py fix(gate): area-gate ЗОУИТ utility-easement blocker (sub-17) — снять over-block 2026-06-24 14:45:59 +05:00
test_rbac.py feat(rbac): add analyst role + §19 audit-log middleware (#962) 2026-06-08 12:16:19 +05:00
test_riasurt_sverdl_client.py feat(site-finder): РИАСУРТ Свердл 14-layer harvest client+schema+task for ЕКБ agglomeration (#108) 2026-06-17 21:49:04 +03:00
test_saturation.py feat(site-finder): POI saturation per capita по районам ЕКБ (#42) (#1329) 2026-06-14 15:05:22 +00:00
test_sentry_init.py feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207) 2026-05-16 15:09:16 +00:00
test_utility_infrastructure_loader.py fix(site-finder): true-counts вместо молча-усечённых len(list) в connection-points/utility (#2445-A1/A2) (#2450) 2026-07-05 18:54:49 +00:00
test_velocity.py fix(site-finder): раскрыть proxy-fraction в EKB-median velocity-бенчмарке (#2445-A4) (#2448) 2026-07-05 18:54:42 +00:00
test_weight_profiles.py feat(site-finder): weight profiles service — Pydantic + CRUD (#114 sub-PR 2/4) (#137) 2026-05-15 00:29:37 +03:00