Skip to content

Commit f19d5cb

Browse files
ericapisaniclaude
andcommitted
fix(tests): Support Python 3.7 importlib.metadata compat
Use importlib_metadata backport fallback for Python 3.7, and handle the dict return type from entry_points() on older Python versions where keyword filtering isn't supported. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent c480d97 commit f19d5cb

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

tests/integrations/opentelemetry/test_entry_points.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
1-
from importlib.metadata import entry_points
1+
try:
2+
from importlib.metadata import entry_points
3+
except ImportError:
4+
from importlib_metadata import entry_points
25

36
from sentry_sdk.integrations.opentelemetry import SentryPropagator
47

58

69
def test_propagator_registered_as_entry_point():
7-
eps = entry_points(group="opentelemetry_propagator", name="sentry")
8-
matches = list(eps)
10+
all_eps = entry_points()
11+
12+
if isinstance(all_eps, dict):
13+
# Python 3.7-3.8 stdlib returns a dict keyed by group
14+
matches = [
15+
ep
16+
for ep in all_eps.get("opentelemetry_propagator", [])
17+
if ep.name == "sentry"
18+
]
19+
else:
20+
matches = list(all_eps.select(group="opentelemetry_propagator", name="sentry"))
21+
922
assert len(matches) == 1
1023
assert matches[0].value == "sentry_sdk.integrations.opentelemetry:SentryPropagator"
1124

0 commit comments

Comments
 (0)