Repository navigation
Expand file tree
/
Copy pathconftest.py
More file actions
47 lines (37 loc) · 1.43 KB
/
Copy pathconftest.py
File metadata and controls
47 lines (37 loc) · 1.43 KB
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
import sys
collect_ignore = [
# this module fails mypy tests because 'setup.py' matches './setup.py'
'tests/data/sources/example/setup.py',
]
def pytest_configure():
remove_importlib_metadata()
def remove_importlib_metadata():
"""
Ensure importlib_metadata is not imported yet.
Because pytest or other modules might import
importlib_metadata, the coverage reports are broken (#322).
Work around the issue by undoing the changes made by a
previous import of importlib_metadata (if any).
"""
sys.meta_path[:] = [
item
for item in sys.meta_path
if item.__class__.__name__ != 'MetadataPathFinder'
]
for mod in list(sys.modules):
if mod.startswith('importlib_metadata'):
del sys.modules[mod]
restore_stdlib_finder()
def restore_stdlib_finder():
"""
Restore the stdlib distribution finder.
A previous import of importlib_metadata disables the stdlib
finder (``_compat.disable_stdlib_finder``). With the backport's
finder removed above, no distributions would be discoverable
(breaking ``pluggy.__version__``, for one). Restore the stdlib
behavior until importlib_metadata is imported again.
"""
from importlib.machinery import PathFinder
from importlib.metadata import MetadataPathFinder
if not hasattr(PathFinder, 'find_distributions'):
PathFinder.find_distributions = MetadataPathFinder.find_distributions