Skip to content

Coverage: bring core.py, client.py, runners/db.py, schema/introspect.py out of the omit list #2

@alialavia

Description

@alialavia

Problem

The coverage omit list in pyproject.toml excludes 4 integration-heavy files because they need a live Postgres:

  • `src/sqlproof/core.py` (345 LOC)
  • `src/sqlproof/client.py` (159 LOC)
  • `src/sqlproof/runners/db.py` (48 LOC)
  • `src/sqlproof/schema/introspect.py` (229 LOC)

Total: 781 LOC outside the coverage gate. Bugs in this surface can land without anyone noticing.

Proposed change

After #1 lands (Postgres service container in CI), drop these four from the omit list and write tests against the real DB:

  • `introspect.py`: round-trip a representative schema through introspection and compare against the SQL parser's output.
  • `core.py`: exercise `from_connection_string`, `client_for_dataset`, `run_state_machine` end-to-end.
  • `client.py`: cover `query`/`execute`/`scalar`/`savepoint` against a real Postgres.
  • `runners/db.py`: testcontainers-mode bootstrap.

Acceptance

  • Each file reaches ≥85% line coverage.
  • The TOTAL coverage number drops temporarily, then recovers as new tests are added.
  • --cov-fail-under ratchets up alongside.

Depends on: #1

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions