From 5726a0c1420f49bf6a8a597992afac5263e5b3f3 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Tue, 11 Nov 2025 21:07:27 +0200 Subject: [PATCH 1/2] Convert coverage configuration to TOML --- .coveragerc | 35 ----------------------------------- pyproject.toml | 38 ++++++++++++++++++++++++++++++++++++++ tox.ini | 2 +- 3 files changed, 39 insertions(+), 36 deletions(-) delete mode 100644 .coveragerc diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 4eab3e33381..00000000000 --- a/.coveragerc +++ /dev/null @@ -1,35 +0,0 @@ -[run] -include = - src/* - testing/* - */lib/python*/site-packages/_pytest/* - */lib/python*/site-packages/pytest.py - */pypy*/site-packages/_pytest/* - */pypy*/site-packages/pytest.py - *\Lib\site-packages\_pytest\* - *\Lib\site-packages\pytest.py -parallel = 1 -branch = 1 - -[paths] -source = src/ - */lib/python*/site-packages/ - */pypy*/site-packages/ - *\Lib\site-packages\ - -[report] -skip_covered = True -show_missing = True -exclude_lines = - \#\s*pragma: no cover - ^\s*raise NotImplementedError\b - ^\s*return NotImplemented\b - ^\s*assert False(,|$) - ^\s*case unreachable: - ^\s*assert_never\( - - ^\s*if TYPE_CHECKING: - ^\s*@overload( |$) - ^\s*def .+: \.\.\.$ - - ^\s*@pytest\.mark\.xfail diff --git a/pyproject.toml b/pyproject.toml index 1f5835254da..d8879d6aed7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -432,6 +432,44 @@ markers = [ "keep_ci_var", ] +[tool.coverage.run] +include = [ + 'src/*', + 'testing/*', + '*/lib/python*/site-packages/_pytest/*', + '*/lib/python*/site-packages/pytest.py', + '*/pypy*/site-packages/_pytest/*', + '*/pypy*/site-packages/pytest.py', + '*\Lib\site-packages\_pytest\*', + '*\Lib\site-packages\pytest.py', +] +parallel = true +branch = true + +[tool.coverage.paths] +source = [ + 'src/', + '*/lib/python*/site-packages/', + '*/pypy*/site-packages/', + '*\Lib\site-packages\', +] + +[tool.coverage.report] +skip_covered = true +show_missing = true +exclude_lines = [ + '\#\s*pragma: no cover', + '^\s*raise NotImplementedError\b', + '^\s*return NotImplemented\b', + '^\s*assert False(,|$)', + '^\s*case unreachable:', + '^\s*assert_never\(', + '^\s*if TYPE_CHECKING:', + '^\s*@overload( |$)', + '^\s*def .+: \.\.\.$', + '^\s*@pytest\.mark\.xfail', +] + [tool.towncrier] package = "pytest" package_dir = "src" diff --git a/tox.ini b/tox.ini index 2e91ddcb2d6..392ee5ff644 100644 --- a/tox.ini +++ b/tox.ini @@ -83,7 +83,7 @@ setenv = coverage: _PYTEST_TOX_COVERAGE_RUN=coverage run -m coverage: _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess coverage: COVERAGE_FILE={toxinidir}/.coverage - coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc + coverage: COVERAGE_PROCESS_START={toxinidir}/pyproject.toml doctesting: _PYTEST_TOX_POSARGS_DOCTESTING=doc/en From 79b21040bc2f20f70a5015cc07f3964420d55b0e Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Tue, 11 Nov 2025 21:38:35 +0200 Subject: [PATCH 2/2] Use coverage built-in subprocess support instead of `coverage-enable-subprocess` See https://coverage.readthedocs.io/en/latest/subprocess.html --- pyproject.toml | 1 + tox.ini | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index d8879d6aed7..b250edc0220 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -445,6 +445,7 @@ include = [ ] parallel = true branch = true +patch = [ "subprocess" ] [tool.coverage.paths] source = [ diff --git a/tox.ini b/tox.ini index 392ee5ff644..8e760e9e2e2 100644 --- a/tox.ini +++ b/tox.ini @@ -81,9 +81,6 @@ setenv = # Configuration to run with coverage similar to CI, e.g. # "tox -e py313-coverage". coverage: _PYTEST_TOX_COVERAGE_RUN=coverage run -m - coverage: _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess - coverage: COVERAGE_FILE={toxinidir}/.coverage - coverage: COVERAGE_PROCESS_START={toxinidir}/pyproject.toml doctesting: _PYTEST_TOX_POSARGS_DOCTESTING=doc/en @@ -100,6 +97,7 @@ setenv = xdist: _PYTEST_TOX_POSARGS_XDIST=-n auto extras = dev deps = + coverage: coverage>=7.10 doctesting: PyYAML exceptiongroup: exceptiongroup>=1.0.0rc8 numpy: numpy>=1.19.4 @@ -111,7 +109,6 @@ deps = asynctest: asynctest xdist: pytest-xdist>=2.1.0 xdist: -e . - {env:_PYTEST_TOX_EXTRA_DEP:} # Can use the same wheel for all environments. package = wheel wheel_build_env = .pkg