|
All checks were successful
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
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 / openapi-codegen-check (pull_request) Successful in 2m19s
CI / backend-tests (pull_request) Successful in 16m23s
Лоадер ЕЭСК писал степень загрузки из колонки E как `load_index = COALESCE(load_index, CAST(:load_pct AS text))`. load_index — категориальная: 'open'|'limited'|'closed'|NULL (data/sql/180_connection_capacity.sql:35), её заполняет rosseti_wfs_loader._map_load_index. Число строкой в этой колонке ломает обе стороны: фронтовый classifyLoadIndex отбрасывает всё вне перечисления в null («неизвестно»), а power_summary.by_load_index — словарь по значению, то есть получил бы бакет с именем вида "41.0" рядом с open/limited/closed. Сегодня не стреляло только потому, что load_index заполнен у всех строк (open 2741 / limited 346 / closed 329, NULL 0 — замер верификации 13.08, подтверждён вторым прогоном скептика), и COALESCE не проваливался. Первая же строка с пустым индексом положила бы туда число. Колонку E больше не читаем: места под процент в power_supply_centers нет — load_index категориальный, current_load_mva в мегавольт-амперах. _pct_share_to_percent оставлен с тестами, но в докстроке теперь прямо написано, что продакшен-вызывающих у него НЕТ и при каких условиях он снова понадобится — чтобы «код есть, эффекта нет» не выглядел работающим. Старый тест фиксировал ровно отменяемое поведение (`first["load_pct"] == 41.0`) — заменён на проверку, что ни SQL, ни параметры загрузку не несут. Проверять пришлось исполняемый текст, а не прозу: слово load_index осталось в поясняющем комментарии, и наивная проверка на подстроку падала на своём же объяснении. Тесты двусторонние: против лоадера из main падает ровно новый. Хунк форматирования — не мой: pre-commit ruff v0.7.4 против 0.15.12 (#2864). Refs #2464 |
||
|---|---|---|
| .. | ||
| alembic | ||
| app | ||
| db/init | ||
| output | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .env.runtime.example | ||
| .gitignore | ||
| alembic.ini | ||
| debug.log | ||
| Dockerfile | ||
| pyproject.toml | ||
| uv.lock | ||