mirror of
https://github.com/zvx-echo6/central.git
synced 2026-08-26 17:31:39 +00:00
NWSAdapter.sweep_old_ids ran an unscoped global DELETE FROM published_ids (no adapter = ? filter), so each per-adapter sweep cycle purged EVERY adapter dedup rows older than 8 days -- capping dedup memory at ~8d for the 8 adapters whose window exceeds it (eonet/gdacs/nwis 30d; swpc_kindex/ protons/alerts + wfigs_incidents/perimeters 14d). Events that went silent past 8d then re-listed were re-published as downstream duplicates. Extract the 3 dedup methods onto the SourceAdapter base (finishing v0.9.19; is_published/mark_published were byte-identical) and preserve the 8-day window via dedup_sweep_days = 8, so the inherited sweep scopes to adapter=?. Effect: each adapter retains dedup to its configured window -> fewer downstream duplicates. Retention-window scoping, NOT a dedup-forward-only change (no event-shape change, no migration/backfill). Adds a regression guard asserting a foreign adapter row survives an nws sweep. Suite 900->901/1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fixtures | ||
| __init__.py | ||
| conftest.py | ||
| README.md | ||
| test_adapters.py | ||
| test_api_key_resolver.py | ||
| test_api_keys.py | ||
| test_apply_enrichment_coordless.py | ||
| test_archive_bbox_filter.py | ||
| test_archive_multi_stream.py | ||
| test_audit.py | ||
| test_auth.py | ||
| test_backend_settings_schema.py | ||
| test_bootstrap_config.py | ||
| test_config_source.py | ||
| test_config_store.py | ||
| test_consumer_doc.py | ||
| test_crypto.py | ||
| test_csrf_handler.py | ||
| test_csrf_race_condition.py | ||
| test_dashboard.py | ||
| test_dedup_mixin.py | ||
| test_enrichment_config_plumbing.py | ||
| test_enrichment_framework.py | ||
| test_enrichment_locations_coverage.py | ||
| test_eonet.py | ||
| test_events_adapter_column.py | ||
| test_events_bbox_guard.py | ||
| test_events_feed.py | ||
| test_events_feed_frontend.py | ||
| test_events_filtering.py | ||
| test_events_pagination.py | ||
| test_events_retention.py | ||
| test_fire_fused.py | ||
| test_firms.py | ||
| test_form_descriptors.py | ||
| test_gdacs.py | ||
| test_geocoder_enricher.py | ||
| test_gui_adapter_edit.py | ||
| test_gui_scaffold.py | ||
| test_inciweb.py | ||
| test_migrate.py | ||
| test_models.py | ||
| test_navi_backend.py | ||
| test_nominatim_backend.py | ||
| test_nwis.py | ||
| test_nwis_enrichment.py | ||
| test_nws_normalization.py | ||
| test_photon_backend.py | ||
| test_preview_hook.py | ||
| test_producer_doc.py | ||
| test_region_picker.py | ||
| test_requires_api_key.py | ||
| test_session_auth.py | ||
| test_setup_gate.py | ||
| test_state_511_atis.py | ||
| test_state_511_atis_cameras.py | ||
| test_stream_registry.py | ||
| test_streams.py | ||
| test_supervisor_hotreload.py | ||
| test_supervisor_integration.py | ||
| test_swpc.py | ||
| test_telemetry_separation.py | ||
| test_tomtom_flow.py | ||
| test_tomtom_flow_passthrough.py | ||
| test_tomtom_incidents.py | ||
| test_usgs_quake.py | ||
| test_wfigs.py | ||
| test_wizard.py | ||
| test_wzdx.py | ||
Central Tests
Test Database
Some tests (notably test_config_store.py) require a real PostgreSQL database.
By default, tests connect to:
postgresql://central_test:testpass@localhost/central_test
If your test database uses different credentials, set the CENTRAL_TEST_DB_DSN
environment variable:
export CENTRAL_TEST_DB_DSN="postgresql://myuser:mypass@localhost/mydb"
uv run pytest tests/test_config_store.py