You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The repo has no coverage gate in CI and no tracking of what critical paths lack tests. This issue tracks a targeted coverage push on the most important subsystems.
Areas to audit and cover
Area
Current state
Risk
services/export/service.py
Some tests exist but one hangs (#117); custom page selection, remote-temp flow, multi-item ZIP need more edge cases
High — user-facing export is a core flow
logic/downloader.py
Instantiation tested via test_downloader_pdf_priority; actual download flow, resume, cancel paths lightly covered
High — primary function of the app
logic/downloader_pdf.py
create_pdf() tested indirectly; OCR JSON loading (recently fixed to load_json), cover page generation, quality settings need direct tests
Medium
config_validation.py
4 tests; deprecated key warnings, whitelist prefix logic, nested schema validation could use more
Medium — bad validation = silent config drift
http_client.py
42 tests — good coverage; get_http_client() singleton + reset_http_client() need a test
Low — well tested
resolvers/discovery.py
Per-provider search tested via unit mocks; manifest validation, probe retry, edge-case payloads need more
Medium
Approach
Run pytest --cov=src --cov-report=term-missing to get a baseline
Identify uncovered critical branches (not just line coverage — focus on error paths and edge cases)
Summary
The repo has no coverage gate in CI and no tracking of what critical paths lack tests. This issue tracks a targeted coverage push on the most important subsystems.
Areas to audit and cover
services/export/service.pylogic/downloader.pytest_downloader_pdf_priority; actual download flow, resume, cancel paths lightly coveredlogic/downloader_pdf.pycreate_pdf()tested indirectly; OCR JSON loading (recently fixed toload_json), cover page generation, quality settings need direct testsconfig_validation.pyhttp_client.pyget_http_client()singleton +reset_http_client()need a testresolvers/discovery.pyApproach
pytest --cov=src --cov-report=term-missingto get a baselineAcceptance criteria
slowunless it truly requires network/filesystem I/ORelated