Skip to content

test_pdf_corpus_smoke.py's pair list has no completeness floor #601

Description

@willhea

What needs doing?

A CI-watched test module can lose most of its coverage without anyone noticing, because the list it parametrizes over has no floor checking how many cases it actually collected.

tests/test_pdf_corpus_smoke.py:25 builds its case list from adjacent_pdf_pairs() (consecutive PDF version pairs within a bill), then parametrizes over it directly with no assertion that the count is anywhere near what the committed corpus should produce. The module is already in tests/conftest.py's CI_SLOW_MODULES watch group, so a regression that drops the list to zero cases is caught (an empty parametrize is itself a skip, which the ceiling watches). A regression that shrinks it partially — say from 30 pairs to 3 — produces neither a skip nor a failure; it just quietly runs fewer comparisons and stays green.

Why

This is the same shape #598 just closed in tests/test_pdf_division_recall.py's _DIVISION_VERSIONS: a collection-time filter feeding a parametrize block, with nothing asserting the result is complete. That fix added a test_the_gate_collected_the_expected_case_set-style floor test (assert len(...) >= N, N set well under the current count so unrelated fixture churn doesn't force edits, but a wholesale loss still reddens). The same pattern applies here directly.

Found during the #539 (test-skip-ceiling audit, closed via #598) second-pass sweep of tests/ beyond that issue's original module list.

Refs #539, #598

Metadata

Metadata

Assignees

No one assigned

    Labels

    testingTest coverage / validation work

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions