File tree Expand file tree Collapse file tree 2 files changed +18
-7
lines changed
tests/integrations/modules Expand file tree Collapse file tree 2 files changed +18
-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
1
+ import pytest
1
2
import re
2
3
import sentry_sdk
3
4
@@ -55,12 +56,16 @@ def test_installed_modules():
55
56
dist .metadata ["Name" ]
56
57
)
57
58
for dist in distributions ()
59
+ if dist .metadata ["Name" ] is not None
60
+ and version (dist .metadata ["Name" ]) is not None
58
61
}
59
62
assert installed_distributions == importlib_distributions
60
63
61
- if pkg_resources_available :
64
+ elif pkg_resources_available :
62
65
pkg_resources_distributions = {
63
66
_normalize_distribution_name (dist .key ): dist .version
64
67
for dist in pkg_resources .working_set
65
68
}
66
69
assert installed_distributions == pkg_resources_distributions
70
+ else :
71
+ pytest .fail ("Neither importlib nor pkg_resources is available" )
You can’t perform that action at this time.
0 commit comments