Merge pull request #328550 from pbsds/init-pytest-coverage-shim-1721428630

python3Packages.pytest-cov-stub: init at 1.0.0
This commit is contained in:
Peder Bergebakken Sundt 2024-07-30 19:04:29 +02:00 committed by GitHub
commit a5779e925d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 135 additions and 13 deletions

View File

@ -45,7 +45,7 @@ python3.pkgs.buildPythonApplication rec {
hypothesis
pytestCheckHook
glibcLocales
pytest-cov
pytest-cov-stub
];
LC_ALL = "en_US.UTF-8";

View File

@ -0,0 +1,22 @@
{
lib,
buildPythonPackage,
python,
hatchling,
}:
buildPythonPackage rec {
pname = "pytest-cov-stub";
version = (lib.importTOML ./src/pyproject.toml).project.version;
pyproject = true;
src = ./src;
build-system = [ hatchling ];
meta = with lib; {
description = "Nixpkgs checkPhase stub for pytest-cov";
license = licenses.mit;
maintainers = [ lib.maintainers.pbsds ];
};
}

View File

@ -0,0 +1,13 @@
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "pytest-cov-nixpkgs-stub"
version = "1.0.0"
[tool.hatch.build.targets.wheel]
packages = ["pytest_cov"]
[project.entry-points.pytest11]
pytest_cov = "pytest_cov.plugin"

View File

@ -0,0 +1,93 @@
import argparse
import pytest
class CoverageError(Exception):
pass
class PytestCovWarning(pytest.PytestWarning):
pass
class CovDisabledWarning(PytestCovWarning):
pass
class CovReportWarning(PytestCovWarning):
pass
class StoreReport(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
report_type, file = values
namespace.cov_report[report_type] = file
def pytest_addoption(parser):
group = parser.getgroup('cov', 'coverage reporting')
group.addoption(
'--cov',
action='append',
default=[],
metavar='SOURCE',
nargs='?',
const=True,
dest='cov_source',
)
group.addoption(
'--cov-reset',
action='store_const',
const=[],
dest='cov_source',
)
group.addoption(
'--cov-report',
action=StoreReport,
default={},
metavar='TYPE',
type=lambda x: x.split(":", 1) if ":" in x else (x, None),
)
group.addoption(
'--cov-config',
action='store',
default='.coveragerc',
metavar='PATH',
)
group.addoption(
'--no-cov-on-fail',
action='store_true',
default=False,
)
group.addoption(
'--no-cov',
action='store_true',
default=False,
)
group.addoption(
'--cov-fail-under',
action='store',
metavar='MIN',
type=str,
)
group.addoption(
'--cov-append',
action='store_true',
default=False,
)
group.addoption(
'--cov-branch',
action='store_true',
default=None,
)
group.addoption(
'--cov-context',
action='store',
metavar='CONTEXT',
type=str,
)
def pytest_configure(config):
config.addinivalue_line('markers', 'no_cover: disable coverage for this test.')
@pytest.fixture
def no_cover():
pass
@pytest.fixture
def cov():
pass

View File

@ -4,6 +4,7 @@
buildPythonPackage,
setuptools,
pytestCheckHook,
pytest-cov-stub,
sortedcontainers,
}:
@ -19,13 +20,6 @@ buildPythonPackage rec {
hash = "sha256-uPM2U+emZUCGqEhIeTBmaOu8eSfK4arqvv9bItBWpUs=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail \
'"--cov' \
'#"--cov'
'';
# don't append .dev0 to version
env.RELEASING_PROCESS = "1";
@ -33,6 +27,7 @@ buildPythonPackage rec {
nativeCheckInputs = [
pytestCheckHook
pytest-cov-stub
sortedcontainers
];

View File

@ -8,6 +8,7 @@
, toml
, watchdog
, pytestCheckHook
, pytest-cov-stub
, rsync
}:
@ -44,11 +45,6 @@ buildPythonApplication rec {
watchdog
];
# disable pytest --cov
preCheck = ''
rm setup.cfg
'';
doCheck = true;
nativeCheckInputs = [
@ -57,6 +53,7 @@ buildPythonApplication rec {
checkInputs = [
pytestCheckHook
pytest-cov-stub
];
disabledTestPaths = lib.optionals stdenv.isDarwin [

View File

@ -12406,6 +12406,8 @@ self: super: with self; {
pytest-cov = callPackage ../development/python-modules/pytest-cov { };
pytest-cov-stub = callPackage ../development/python-modules/pytest-cov-stub { };
pytest-cram = callPackage ../development/python-modules/pytest-cram { };
pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };