The Python workspace already runs pytest-cov in CI but with no threshold and inline-flagged config. CI run 24956647701 (2026-04-26 staging) reports 97% coverage on the package — well above the issue's 75% target. The actionable gap is locking in a floor so a regression can't sneak past, and centralizing config so local `pytest` matches CI. Changes: - workspace/pytest.ini — coverage flags moved into addopts (-q, --cov=., --cov-report=term-missing, --cov-fail-under=92). 92% = current 97% measurement minus the 5pp safety margin the issue's Step 3 prescribes. - workspace/.coveragerc (new) — [run] omit list and [report] skip_covered. coverage.py doesn't read pytest.ini sections, so the omit config has to live here. - .github/workflows/ci.yml — removed the inline --cov flags from the Python Lint & Test step; now reads from pytest.ini. Workflow stays the same single-command shape, just simpler. Result: any PR that drops coverage below 92% fails CI loudly. Floor ratchets up by replacing 92 with current measurement on a future test-writing pass — same shape as Go coverage gates landed elsewhere. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 lines
453 B
INI
14 lines
453 B
INI
# coverage.py config — consumed by `pytest --cov` via the pytest-cov
|
|
# plugin. Lives here (not in pytest.ini) because coverage.py only reads
|
|
# .coveragerc / setup.cfg / tox.ini / pyproject.toml — the [coverage:*]
|
|
# sections in pytest.ini are silently ignored. See issue #1817.
|
|
[run]
|
|
omit =
|
|
*/tests/*
|
|
*/__init__.py
|
|
plugins_registry/*
|
|
|
|
[report]
|
|
# Skip files at 100% in the term-missing output to keep CI logs readable.
|
|
skip_covered = True
|