v2.1.0 — Coverage gate raised to 75%; storage and resilience test suites
What's New
Test Coverage: 40% → 77%
Coverage gate raised from 40% to 75% (currently passing at 77%). Enforced in both CI and local pytest runs.
tests/test_storage_extended.py — 27 real-SQLite tests via tmp_path (no mocks):
- Schema verification (magnets + scrape_runs tables)
add_magnet: insert, count, duplicate idempotencyhas_hash: true/false/case-insensitiverecent(limit=N): count and orderingsearch(): FTS match and empty-string passthroughstats(): today, last_7_days, last_30_days keysrecord_scrape_run: row insertion and value correctness- WAL probe: succeeds on local filesystem path
tests/test_resilience_extended.py:
retry.py:_parse_retry_afterwith valid/invalid/absent header; 429 uses header wait timemigrate.py:_parse_linevalid/invalid;migrate()no-files, single file, deduplication, wrong filename pattern, multi-filesecurity.py:log_security_eventwrite path and OSError suppression;_rotate_log_if_neededtrim logic;_migrate_credentialsv1→v2 upgrade;get_base_dirbranch
Result
273 tests passing. 77% coverage. mypy clean. ruff clean.
What's Next
- T5: Codecov integration (requires Codecov account setup — see
.raiden/local/prompts/v2-completion/T5-codecov.md)