Skip to content

Commit 672a69f

Browse files
committed
Added none value for OTEL_PROPAGATORS
1 parent 01a670e commit 672a69f

File tree

2 files changed

+42
-21
lines changed

2 files changed

+42
-21
lines changed

opentelemetry-api/src/opentelemetry/propagate/__init__.py

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -130,28 +130,31 @@ def inject(
130130
)
131131

132132

133-
for propagator in environ_propagators.split(","):
134-
propagator = propagator.strip()
135-
136-
try:
137-
138-
propagators.append( # type: ignore
139-
next( # type: ignore
140-
iter( # type: ignore
141-
entry_points( # type: ignore
142-
group="opentelemetry_propagator",
143-
name=propagator,
133+
if environ_propagators.lower() == "none":
134+
propagators = []
135+
else:
136+
for propagator in environ_propagators.split(","):
137+
propagator = propagator.strip()
138+
139+
try:
140+
141+
propagators.append( # type: ignore
142+
next( # type: ignore
143+
iter( # type: ignore
144+
entry_points( # type: ignore
145+
group="opentelemetry_propagator",
146+
name=propagator,
147+
)
144148
)
145-
)
146-
).load()()
147-
)
148-
except StopIteration:
149-
raise ValueError(
150-
f"Propagator {propagator} not found. It is either misspelled or not installed."
151-
)
152-
except Exception: # pylint: disable=broad-exception-caught
153-
logger.exception("Failed to load propagator: %s", propagator)
154-
raise
149+
).load()()
150+
)
151+
except StopIteration:
152+
raise ValueError(
153+
f"Propagator {propagator} not found. It is either misspelled or not installed."
154+
)
155+
except Exception: # pylint: disable=broad-exception-caught
156+
logger.exception("Failed to load propagator: %s", propagator)
157+
raise
155158

156159

157160
_HTTP_TEXT_FORMAT = composite.CompositePropagator(propagators) # type: ignore

opentelemetry-api/tests/propagators/test_propagators.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,24 @@ def test_propagators(propagators):
5050

5151
reload(opentelemetry.propagate)
5252

53+
@patch.dict(environ, {OTEL_PROPAGATORS: "none"})
54+
@patch("opentelemetry.propagators.composite.CompositePropagator")
55+
def test_no_propagators_loaded(self, mock_compositehttppropagator):
56+
def test_propagators(propagators):
57+
self.assertEqual(
58+
propagators, []
59+
) # Expecting an empty list of propagators
60+
61+
mock_compositehttppropagator.configure_mock(
62+
**{"side_effect": test_propagators}
63+
)
64+
65+
from importlib import reload
66+
67+
import opentelemetry.propagate
68+
69+
reload(opentelemetry.propagate)
70+
5371
@patch.dict(environ, {OTEL_PROPAGATORS: "a, b, c "})
5472
@patch("opentelemetry.propagators.composite.CompositePropagator")
5573
@patch("opentelemetry.util._importlib_metadata.entry_points")

0 commit comments

Comments
 (0)