central/tests
Matt Johnson 35de09ea93 test: add hot-reload integration tests for cadence changes
Add tests that exercise the ACTUAL running loop with cancel_event
signaling, not just AdapterState math in isolation.

Test cases:
- Test 1: Cadence decrease (60->30) wakes loop immediately
- Test 2: Cadence increase (10->20) extends wait correctly
- Test 3: Enable/disable/enable with gap > cadence polls immediately
- Test 4: Enable/disable/enable with gap < cadence waits

These tests verify the cancel_event mechanism properly interrupts
the sleeping loop when config changes occur via _on_config_change.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-16 05:59:35 +00:00
..
__init__.py scaffold: initial repository structure 2026-05-15 19:16:24 +00:00
README.md docs(tests): add README documenting CENTRAL_TEST_DB_DSN env var 2026-05-16 01:36:40 +00:00
test_bootstrap_config.py feat(config): add bootstrap config from environment 2026-05-15 23:07:33 +00:00
test_cadence_hotreload_loop.py test: add hot-reload integration tests for cadence changes 2026-05-16 05:59:35 +00:00
test_config_source.py test: remove TomlConfigSource and config_source flag tests 2026-05-16 03:42:43 +00:00
test_config_store.py feat(config_store): add listener reconnect with exponential backoff 2026-05-16 01:36:35 +00:00
test_crypto.py feat(config): add AES-256-GCM crypto primitives 2026-05-15 23:07:41 +00:00
test_models.py fix(tests): replace echo6 reference with central.local 2026-05-16 01:36:44 +00:00
test_nws_normalization.py runtime: NWS adapter, supervisor, archive consumer, systemd units 2026-05-15 21:29:08 +00:00
test_supervisor_hotreload.py test: remove TomlConfigSource and config_source flag tests 2026-05-16 03:42:43 +00:00
test_supervisor_integration.py fix: preserve last_completed_poll across adapter disable/enable 2026-05-16 02:37:57 +00:00

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