File tree Expand file tree Collapse file tree 2 files changed +17
-7
lines changed
tests/integrations/modules Expand file tree Collapse file tree 2 files changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -26,12 +26,18 @@ def _normalize_module_name(name):
26
26
def _generate_installed_modules ():
27
27
# type: () -> Iterator[Tuple[str, str]]
28
28
try :
29
- from importlib .metadata import distributions , version
30
-
31
- for dist in distributions ():
32
- yield _normalize_module_name (dist .metadata ["Name" ]), version (
33
- dist .metadata ["Name" ]
34
- )
29
+ from importlib import metadata
30
+
31
+ for dist in metadata .distributions ():
32
+ name = dist .metadata ["Name" ]
33
+ # `metadata` values may be `None`, see:
34
+ # https://github.com/python/cpython/issues/91216
35
+ # and
36
+ # https://github.com/python/importlib_metadata/issues/371
37
+ if name is not None :
38
+ version = metadata .version (name )
39
+ if version is not None :
40
+ yield _normalize_module_name (name ), version
35
41
36
42
except ImportError :
37
43
# < py3.8
Original file line number Diff line number Diff line change @@ -55,12 +55,16 @@ def test_installed_modules():
55
55
dist .metadata ["Name" ]
56
56
)
57
57
for dist in distributions ()
58
+ if dist .metadata ["Name" ] is not None and
59
+ version (dist .metadata ["Name" ]) is not None
58
60
}
59
61
assert installed_distributions == importlib_distributions
60
62
61
- if pkg_resources_available :
63
+ elif pkg_resources_available :
62
64
pkg_resources_distributions = {
63
65
_normalize_distribution_name (dist .key ): dist .version
64
66
for dist in pkg_resources .working_set
65
67
}
66
68
assert installed_distributions == pkg_resources_distributions
69
+ else :
70
+ pytest .fail ("Neither importlib nor pkg_resources is available" )
You can’t perform that action at this time.
0 commit comments