Skip to content
README → Coverage View source on GitHub →

Quality

Test coverage

Branch coverage is measured with coverage.py — a dev-only dependency. The runtime stays standard-library-only.

Loading… Coverage badge

Fetching the latest published coverage…

Threshold & gate

The minimum total coverage is 99%, configured once in pyproject.toml under [tool.coverage.report] fail_under and enforced by a dedicated coverage job in CI (Ubuntu / Python 3.13). CI fails if total coverage drops below that floor. The gate runs in a single job rather than across the whole matrix to keep CI cheap and free of cross-OS path noise.

What's measured

Branch coverage is enabled (branch = true) and the package is measured by import name (source = ["ai_jury"]). The number you see above is the total reported by coverage report on the latest run published to GitHub Pages.

Exclusions

Intentionally-untested paths are excluded so the number stays honest:

  • src/ai_jury/__main__.py is omitted (a thin python -m entry shim).
  • Lines matching these patterns are excluded from the count: pragma: no cover, if __name__ == "__main__":, raise NotImplementedError, if TYPE_CHECKING:, and abstract-method decorators.

Add # pragma: no cover to any new line that is genuinely not worth testing.

Run it locally

Measure coverage with one command:

# run the suite under coverage, print the report, write htmlcov/
make coverage
# or, without make:
./scripts/coverage.sh

Either entry point runs:

python3 -m coverage run -m unittest discover -s tests
python3 -m coverage report