test(quarter-dump): un-rot freshness date-bomb (hardcoded 2026-01-01 → now−1d)
All checks were successful
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Successful in 1m5s
CI / openapi-codegen-check (pull_request) Successful in 1m59s
CI / backend-tests (pull_request) Successful in 14m18s

test_nspd_path_used_when_zouit_count_nonzero хардкодил dump fetched_at =
datetime(2026, 1, 1) как «свежий». С 2026-06-30 разница превысила
_DUMP_MAX_AGE_DAYS=180 → код уходил в stale-ветку (_trigger_harvest →
_empty_unavailable) → nspd_zouit_overlaps=[] → assert 0 == 1. Не регрессия
этой ветки: PR #2101 был frontend-only (backend-tests не гонял полный suite),
PR-B — первый backend-PR после пересечения порога, поэтому date-bomb всплыл
здесь. Свежесть теперь относительна now (now − 1 день) — устойчиво к дате прогона.
This commit is contained in:
Light1YT 2026-06-30 14:33:16 +05:00
parent 83a063f0ee
commit 0413d59b89

View file

@ -685,12 +685,15 @@ def test_nspd_path_used_when_zouit_count_nonzero() -> None:
Проверяем source='nspd-quarter-dump' (не cad_zouit). Проверяем source='nspd-quarter-dump' (не cad_zouit).
""" """
# Строка дампа: все поля через MagicMock # Строка дампа: все поля через MagicMock
from datetime import UTC, datetime from datetime import UTC, datetime, timedelta
dump_row = MagicMock() dump_row = MagicMock()
dump_row.__getitem__ = lambda self, i: [ dump_row.__getitem__ = lambda self, i: [
"66:41:0603016", # quarter_cad "66:41:0603016", # quarter_cad
datetime(2026, 1, 1, tzinfo=UTC), # fetched_at_utc (свежий) # Свежесть ОТНОСИТЕЛЬНО now: был хардкод datetime(2026, 1, 1) → date-bomb
# (с 2026-06-30 перевалил _DUMP_MAX_AGE_DAYS=180 → stale-ветка → _trigger_harvest
# → _empty_unavailable → overlaps=[] → assert 0 == 1). now 1 день всегда свеж.
datetime.now(UTC) - timedelta(days=1), # fetched_at_utc (свежий)
100, # total_features 100, # total_features
None, # harvest_error None, # harvest_error
1, # territorial_zones_count 1, # territorial_zones_count