summaryrefslogtreecommitdiff
path: root/dev-python/pip/files/pip-20.2-no-coverage.patch
blob: 55be5b8c9712567ba1a946390d560cd49af3ab2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
From 43389903a55a5432ca8556f42fb2252c91c7ca45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Wed, 29 Jul 2020 07:42:25 +0200
Subject: [PATCH] Revert "Add basic test coverage configuration"

This is just PITA since coverage uses native C extensions.
---
 .coveragerc                                |  4 +++
 setup.cfg                                  | 38 ----------------------
 tests/conftest.py                          | 16 +--------
 tools/requirements/tests-common_wheels.txt |  2 --
 tox.ini                                    | 16 ++-------
 5 files changed, 7 insertions(+), 69 deletions(-)
 create mode 100644 .coveragerc

diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 00000000..5f833c94
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,4 @@
+[run]
+branch = True
+omit =
+  src/pip/_vendor/*
diff --git a/setup.cfg b/setup.cfg
index 45fd58a3..e40596e9 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -67,44 +67,6 @@ markers =
     yaml: yaml based tests
     fails_on_new_resolver: Does not yet work on the new resolver
 
-[coverage:run]
-branch = True
-# Do not gather coverage for vendored libraries.
-omit = */_vendor/*
-# Centralized absolute file prefix for coverage files.
-data_file = ${COVERAGE_OUTPUT_DIR}/.coverage
-# By default, each covered process will try to truncate and then write to
-# `data_file`, but with `parallel`, they will write to separate files suffixed
-# with hostname, pid, and a timestamp.
-parallel = True
-# If not set, then at the termination of each worker (when using pytest-xdist),
-# the following is traced: "Coverage.py warning: Module pip was previously
-# imported, but not measured (module-not-measured)"
-disable_warnings = module-not-measured
-
-[coverage:paths]
-# We intentionally use "source0" here because pytest-cov unconditionally sets
-# "source" after loading the config.
-source0 =
-    # The primary source code path which other paths will be combined into.
-    src/pip/
-    # Unit test source directory e.g.
-    # `.tox/coverage-py3/lib/pythonX.Y/site-packages/pip/...`
-    */site-packages/pip/
-    # Functional test virtual environment directories, which look like
-    # `tmpdir/pip0/pip/src/pip/...`
-    */pip/src/pip/
-
-[coverage:report]
-exclude_lines =
-    # We must re-state the default because the `exclude_lines` option overrides
-    # it.
-    pragma: no cover
-    # This excludes typing-specific code, which will be validated by mypy anyway.
-    if MYPY_CHECK_RUNNING
-    # Can be set to exclude e.g. `if PY2:` on Python 3
-    ${PIP_CI_COVERAGE_EXCLUDES}
-
 [bdist_wheel]
 universal = 1
 
diff --git a/tests/conftest.py b/tests/conftest.py
index 2aab5020..0db6d967 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -294,13 +294,6 @@ def wheel_install(tmpdir_factory, common_wheels):
                                           'wheel')
 
 
-@pytest.fixture(scope='session')
-def coverage_install(tmpdir_factory, common_wheels):
-    return _common_wheel_editable_install(tmpdir_factory,
-                                          common_wheels,
-                                          'coverage')
-
-
 def install_egg_link(venv, project_name, egg_info_dir):
     with open(venv.site / 'easy-install.pth', 'a') as fp:
         fp.write(str(egg_info_dir.resolve()) + '\n')
@@ -310,7 +303,7 @@ def install_egg_link(venv, project_name, egg_info_dir):
 
 @pytest.fixture(scope='session')
 def virtualenv_template(request, tmpdir_factory, pip_src,
-                        setuptools_install, coverage_install):
+                        setuptools_install, common_wheels):
 
     if six.PY3 and request.config.getoption('--use-venv'):
         venv_type = 'venv'
@@ -334,13 +327,6 @@ def virtualenv_template(request, tmpdir_factory, pip_src,
     subprocess.check_call([venv.bin / 'python', 'setup.py', '-q', 'develop'],
                           cwd=pip_editable)
 
-    # Install coverage and pth file for executing it in any spawned processes
-    # in this virtual environment.
-    install_egg_link(venv, 'coverage', coverage_install)
-    # zz prefix ensures the file is after easy-install.pth.
-    with open(venv.site / 'zz-coverage-helper.pth', 'a') as f:
-        f.write('import coverage; coverage.process_startup()')
-
     # Drop (non-relocatable) launchers.
     for exe in os.listdir(venv.bin):
         if not (
diff --git a/tools/requirements/tests-common_wheels.txt b/tools/requirements/tests-common_wheels.txt
index f0edf0b0..6703d606 100644
--- a/tools/requirements/tests-common_wheels.txt
+++ b/tools/requirements/tests-common_wheels.txt
@@ -7,5 +7,3 @@
 
 setuptools >= 40.8.0
 wheel
-# As required by pytest-cov.
-coverage >= 4.4
diff --git a/tox.ini b/tox.ini
index 82e9abc6..7a19ca61 100644
--- a/tox.ini
+++ b/tox.ini
@@ -8,7 +8,6 @@ envlist =
 # Wrapper for calls to pip that make sure the version being used is the
 # original virtualenv (stable) version, and not the code being tested.
 pip = python {toxinidir}/tools/tox_pip.py
-mkdirp = python -c 'import os, sys; os.path.exists(sys.argv[1]) or os.mkdir(sys.argv[1])'
 
 [testenv]
 # Remove USERNAME once we drop PY2.
@@ -31,20 +30,9 @@ commands = pytest --timeout 300 []
 install_command = {[helpers]pip} install {opts} {packages}
 list_dependencies_command = {[helpers]pip} freeze --all
 
-[testenv:coverage]
+[testenv:coverage-py3]
 basepython = python3
-commands =
-    {[helpers]mkdirp} {toxinidir}/.coverage-output
-    pytest --timeout 300 --cov=pip --cov-config={toxinidir}/setup.cfg []
-
-setenv =
-    # Used in coverage configuration in setup.cfg.
-    COVERAGE_OUTPUT_DIR = {toxinidir}/.coverage-output
-    # Ensure coverage is enabled in child processes in virtual environments
-    # since they won't already have been enabled by pytest-cov.
-    COVERAGE_PROCESS_START = {toxinidir}/setup.cfg
-    # Used in coverage configuration in setup.cfg.
-    PIP_CI_COVERAGE_EXCLUDES = if PY2
+commands = pytest --timeout 300 --cov=pip --cov-report=term-missing --cov-report=xml --cov-report=html tests/unit {posargs}
 
 [testenv:docs]
 # Don't skip install here since pip_sphinxext uses pip's internals.
-- 
2.28.0