gendesign/backend/tests/workers
bot-backend f6fb79522a
Some checks failed
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-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) Failing after 1m57s
CI / backend-tests (pull_request) Successful in 14m44s
feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442)
Task 1: _norm_flat теперь читает catalog_url_hash из уже доступного kn-API
elemId вместо жёсткого None (domrf_kn.py:479) — разблокирует источник
хэшей для 983k квартир при следующем kn-sweep. elemId or None корректно
нормализует и отсутствие, и пустую строку.

Task 2: новый scrape_kn_catalog_flats Celery task оборачивает уже
смерженный scrape_catalog_batch (#2441) — batch-выборка по последнему
snapshot WHERE catalog_url_hash IS NOT NULL + 30d freshness/force.
Зарегистрирован в celery_app, ручной триггер POST /kn-catalog-flats.

Beat-запись оставлена закомментированной — по образцу уже отключённого
object-level catalog scraper: DOM.РФ WAF hard-ban на VPS IP с 2026-05-24
(см. #2443), cooldown не подтверждён. Task ships полностью dormant:
beat не назначен в рантайме, admin-endpoint требует авторизации, browser-
stack импортируется лениво внутри функции (не на старте воркера), живой
fetch недостижим без непустого batch. code-reviewer отдельно проверил
WAF-safety независимо — подтверждено.

Batch наполнится непустыми строками только после того, как Task 1
задеплоится И пройдёт свежий kn-sweep — ожидаемо 0 строк первое время.

Refs #2442, #2441, #2443
2026-07-05 21:39:39 +05:00
..
tasks feat(site-finder): Celery + §3 точки выхода газосети (#2119 B2, PR-4/4 — финал формы-6) (#2251) 2026-07-03 04:26:41 +00:00
test_backfill_zone_regulations.py feat(site-finder): backfill ЕКБ зон-регламента — разблокировать видимость финмодели (#1881) 2026-06-24 02:11:41 +05:00
test_cbr_macro_sync.py fix(sql): EMISS PK includes period_type so yearly+Q1 coexist (#1606 follow-up) 2026-06-17 21:27:34 +03:00
test_genplan_zones_sync.py fix(sf): ST_MakeValid genplan geom + backfill 881 invalid polygons (#1157) 2026-06-07 17:59:04 +00:00
test_ird_harvest.py fix(sf): per-quarter commit в ird/opportunity harvest — не терять прогресс при краше (#1107) 2026-06-06 21:47:35 +00:00
test_krt_geometry_sync.py perf(sf): КРТ-геометрия в БД, _krt_at из БД вместо живого WFS (#1139) 2026-06-07 12:14:35 +00:00
test_nspd_geo.py test: выровнять weather_cache/nspd_geo тесты под #1377/#1336 (CI red→green) 2026-06-16 08:35:14 +03:00
test_opportunity_harvest.py feat(sf): opportunity-ЗУ harvest → ird_overlays (future-supply, #1100) 2026-06-06 19:32:45 +00:00
test_planning_harvest.py feat(sf): ППТ/ПМТ WFS ingest → planning_projects (future-supply, #1104) 2026-06-06 20:25:23 +00:00
test_reservation_ingest.py feat(sf): enumerate изъятия/резервирования с pravo.gov66 → land_reservation (#1145) 2026-06-07 13:56:29 +00:00
test_riasurt_sverdl_harvest.py merge main + renumber 163→167 + guard riasurt harvest (#108 review) 2026-06-17 22:52:15 +03:00
test_rosstat_macro_sync.py fix(sql): EMISS PK includes period_type so yearly+Q1 coexist (#1606 follow-up) 2026-06-17 21:27:34 +03:00
test_scrape_cadastre.py fix(workers): cadastre permanent-fail targets_failed + beat cleanup (#1236) 2026-06-13 08:36:13 +00:00
test_scrape_freshness_check.py feat(workers): data-freshness monitor (Celery beat → GlitchTip) 2026-06-25 11:29:34 +00:00
test_scrape_kn_catalog_flats.py feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442) 2026-07-05 21:39:39 +05:00
test_scrape_kn_catalog_objects.py feat(22d): catalog scraper — skip-today filter + force flag (#348) 2026-05-17 23:15:22 +00:00
test_supply_layers_refresh.py fix(supply-layers): thread dev_group_name into L3 upsert key (#970 CRITICAL) 2026-06-04 10:06:30 +05:00
test_zone_regulation_refresh.py feat(sf): прогрев zone_regulation_cache по терзонам ЕКБ (#1106) 2026-06-06 21:04:52 +00:00