Subcategory: test coverage & depth
Current → target: 8 → 10
Problem
The Python layer is fully covered, but nothing in CI measures it, so a regression would be
invisible.
Measured locally (run from outside the repo so the source mapped to the installed module):
Name Stmts Miss Cover
----------------------------------------------------------
site-packages/scs/__init__.py 114 0 100%
----------------------------------------------------------
TOTAL 114 0 100%
396 passed, 67 skipped
But grep -n "coverage\|--cov" .github/workflows/*.yml pyproject.toml returns nothing:
no workflow installs pytest-cov, passes --cov, or enforces a threshold. The value is
100% today by accident of discipline, not by enforcement.
Files / config to change
- add
pytest-cov to the test job's dependency list in .github/workflows/build.yml
(or freethreading_tests.yml, whichever is the canonical test job)
- run
pytest --cov=scs --cov-report=term-missing --cov-fail-under=100
Note: this measures the Python layer only. The ~1,300-line C wrapper in scs/scsobject.h
has no coverage measurement; that is out of scope for this issue.
Done when
At least one CI job enforces a coverage threshold on scs/py/__init__.py, and dropping a
line of its coverage fails a pull request.
Subcategory: test coverage & depth
Current → target: 8 → 10
Problem
The Python layer is fully covered, but nothing in CI measures it, so a regression would be
invisible.
Measured locally (run from outside the repo so the source mapped to the installed module):
But
grep -n "coverage\|--cov" .github/workflows/*.yml pyproject.tomlreturns nothing:no workflow installs
pytest-cov, passes--cov, or enforces a threshold. The value is100% today by accident of discipline, not by enforcement.
Files / config to change
pytest-covto the test job's dependency list in.github/workflows/build.yml(or
freethreading_tests.yml, whichever is the canonical test job)pytest --cov=scs --cov-report=term-missing --cov-fail-under=100Note: this measures the Python layer only. The ~1,300-line C wrapper in
scs/scsobject.hhas no coverage measurement; that is out of scope for this issue.
Done when
At least one CI job enforces a coverage threshold on
scs/py/__init__.py, and dropping aline of its coverage fails a pull request.