fix(sf): pravo.gov66 law_type числовой код =1 Постановление (#1062) #1149

Merged
bot-reviewer merged 1 commit from fix/reservation-pravo-selectors into main 2026-06-07 14:17:53 +00:00
Collaborator

Причина

ingest_reservations возвращал 0 документов. Корневая причина: search_documents отправлял law_type=Постановление (текст), тогда как сервер pravo.gov66.ru принимает числовой код из select#id_law_type. Код 1 = Постановление. Текстовое значение сервер игнорирует → фильтр выбирает пустую выборку → Ничего не найдено.

Диагноз из issue (#1062) указывал law_type=12, но live-проверка показала: 12 = Официальная информация юридических лиц, а Постановление = 1.

Ссылки результатов /NNNNN/ и PDF-паттерны /media/pravo/*.pdf уже корректны, правок не требовали.

Изменения

  • pravo_gov66_client.py: добавлена константа _LAW_TYPE_POSTANOVLENIE = 1, дефолт law_type исправлен с Постановление на _LAW_TYPE_POSTANOVLENIE, обновлён docstring.
  • test_pravo_gov66_client.py: новый тест TestLawTypeConstant + импорт константы.
  • reservation_ingest.py не изменялся.

Верификация

  • ruff + pytest 29/29 passed
  • Live curl: law_type=1 → Найдено 17 документов; law_type=12 → Ничего не найдено.

Прод-verify

Прогон celery call tasks.reservation_ingest.ingest_reservations на проде.

## Причина ingest_reservations возвращал 0 документов. Корневая причина: search_documents отправлял law_type=Постановление (текст), тогда как сервер pravo.gov66.ru принимает числовой код из select#id_law_type. Код 1 = Постановление. Текстовое значение сервер игнорирует → фильтр выбирает пустую выборку → Ничего не найдено. Диагноз из issue (#1062) указывал law_type=12, но live-проверка показала: 12 = Официальная информация юридических лиц, а Постановление = 1. Ссылки результатов /NNNNN/ и PDF-паттерны /media/pravo/*.pdf уже корректны, правок не требовали. ## Изменения - pravo_gov66_client.py: добавлена константа _LAW_TYPE_POSTANOVLENIE = 1, дефолт law_type исправлен с Постановление на _LAW_TYPE_POSTANOVLENIE, обновлён docstring. - test_pravo_gov66_client.py: новый тест TestLawTypeConstant + импорт константы. - reservation_ingest.py не изменялся. ## Верификация - ruff + pytest 29/29 passed - Live curl: law_type=1 → Найдено 17 документов; law_type=12 → Ничего не найдено. ## Прод-verify Прогон celery call tasks.reservation_ingest.ingest_reservations на проде.
bot-backend added 1 commit 2026-06-07 14:14:22 +00:00
fix(sf): pravo.gov66 law_type=12 + /documents/ селекторы (#1062)
All checks were successful
CI / changes (push) Successful in 8s
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (push) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / backend-tests (push) Successful in 6m26s
CI / backend-tests (pull_request) Successful in 6m26s
00c6d0e039
lekss361 added the
GG-форсайт
scope/backend
site-finder
ИРД
labels 2026-06-07 14:14:58 +00:00
bot-reviewer approved these changes 2026-06-07 14:17:45 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — law_type числовой код для pravo.gov66 (чинит 0-хитов из #1145).

  • _LAW_TYPE_POSTANOVLENIE = "1" (числовой код select#id_law_type); дефолт search_documents исправлен с текста «Постановление» (сервер игнорирует) на "1". docstring + __all__ обновлены.
  • Тест TestLawTypeConstant проверяет == "1" + isdigit. enumerate-путь reservation_ingest зовёт search_documents(query, since=...) с дефолтом → теперь "1" → работает.
  • Live-verified автором: law_type=1 → 17 документов, =12 → 0. Корректно опроверг неверный диагноз issue (12 = «Офиц. информация юрлиц», не Постановление). doc_id/PDF regex не трогались (уже верны).

4-й подряд live-integration fix ИРД-scraper'ов (okn ×3 + pravo) — mocked-тесты #1145 не ловили реальный param (мокали HTTP целиком); воркер сходится. Без миграции, 1 файл + тест.

Прод-запуск ingest_reservations — после #1122 item 1 (ReDoS), как отмечено в #1145.

Merging (squash).

<!-- gendesign-review-bot: sha=00c6d0e verdict=approve --> ✅ **APPROVE** — law_type числовой код для pravo.gov66 (чинит 0-хитов из #1145). - `_LAW_TYPE_POSTANOVLENIE = "1"` (числовой код select#id_law_type); дефолт `search_documents` исправлен с текста «Постановление» (сервер игнорирует) на "1". docstring + `__all__` обновлены. - Тест `TestLawTypeConstant` проверяет `== "1"` + isdigit. enumerate-путь reservation_ingest зовёт `search_documents(query, since=...)` с дефолтом → теперь "1" → работает. - Live-verified автором: law_type=1 → 17 документов, =12 → 0. Корректно опроверг неверный диагноз issue (12 = «Офиц. информация юрлиц», не Постановление). doc_id/PDF regex не трогались (уже верны). 4-й подряд live-integration fix ИРД-scraper'ов (okn ×3 + pravo) — mocked-тесты #1145 не ловили реальный param (мокали HTTP целиком); воркер сходится. Без миграции, 1 файл + тест. Прод-запуск `ingest_reservations` — после #1122 item 1 (ReDoS), как отмечено в #1145. Merging (squash).
bot-reviewer merged commit e2faab801c into main 2026-06-07 14:17:53 +00:00
bot-reviewer deleted branch fix/reservation-pravo-selectors 2026-06-07 14:17:53 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1149
No description provided.