|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
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 2m4s
CI / backend-tests (pull_request) Successful in 17m21s
1. `QuarterDump` (nspd_client): «Default = только core, чтобы не сжигать rate-limit на 17 запросов». Фактический дефолт `search_by_quarter` — `include_zouit=True`, то есть 5 ЗОУИТ-слоёв входят в дефолтный вызов. Числа 17 тоже нет: territorial_zones/red_lines/engineering и все ЗОУИТ идут через grid-walk при grid_n=7, по 49 запросов КАЖДЫЙ — дефолтный дамп это сотни запросов. Экономит rate-limit только include_risks=False. Докстрока самого метода 640 строками ниже говорит верно («Default True») — правильный образец лежал рядом с дефектом. 2. `find_active_on_demand_job` (cadastre_fetch): «Если в БД есть FAILED on-demand за последние 60 секунд — тоже None». В SQL нет ни слова 'failed', ни какого-либо временного фильтра. Обещание вдвойне вредно: подразумевало, что неуспешная джоба СТАРШЕ минуты вернётся как активная (не вернётся), и отправляло отлаживающего искать окно, которого нет. Гейты сверяют утверждение докстроки с кодом, а не читаемость текста: обещание «только core» требует `include_zouit=False` в сигнатуре; обещание минутного окна требует временного фильтра в теле. Двусторонне: против origin/main три гейта красные с конкретными сообщениями. Контроли зелёные с обеих сторон — характеризующий фиксирует фактические три статуса в SQL, а test_docstrings_state_the_actual_behaviour ловит «починку» через вычёркивание неудобной фразы. Два подводных камня, на которые наступил и оставил защиту: - гейт ищет обещание по тексту, поэтому старые формулировки в докстроках ПЕРЕСКАЗАНЫ, а не процитированы — иначе он не отличает цитату от утверждения (оговорено прямо в тексте докстроки); - тело функции нельзя брать как последний кусок разбиения по тройным кавычкам: SQL сам в них обёрнут, и проверка шла бы по огрызку после запроса. Из-за этого один гейт проходил по случайности. Вынесен хелпер `_body`. pytest backend/tests/services/ — 3199 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| resources/certs | ||
| schemas | ||
| scrapers | ||
| services | ||
| templates | ||
| workers | ||
| __init__.py | ||
| main.py | ||