|
13 | 13 | # limitations under the License. |
14 | 14 |
|
15 | 15 | import unittest |
| 16 | +from os import environ |
16 | 17 | from unittest.mock import MagicMock, patch |
17 | 18 |
|
18 | 19 | # CompositePropagator stores its propagators in _propagators (private). |
19 | 20 | # We access it here to assert composition correctness. |
20 | 21 | # pylint: disable=protected-access |
21 | 22 | from opentelemetry.baggage.propagation import W3CBaggagePropagator |
| 23 | +from opentelemetry.environment_variables import OTEL_PROPAGATORS |
22 | 24 | from opentelemetry.propagators.composite import CompositePropagator |
23 | 25 | from opentelemetry.sdk._configuration._propagator import ( |
24 | 26 | configure_propagator, |
@@ -257,3 +259,19 @@ def test_configure_propagator_with_config(self): |
257 | 259 | propagator = mock_set.call_args[0][0] |
258 | 260 | self.assertIsInstance(propagator, CompositePropagator) |
259 | 261 | self.assertEqual(len(propagator._propagators), 1) # type: ignore[attr-defined] |
| 262 | + |
| 263 | + @patch.dict(environ, {OTEL_PROPAGATORS: "baggage"}) |
| 264 | + def test_otel_propagators_env_var_ignored(self): |
| 265 | + """OTEL_PROPAGATORS env var must not influence configure_propagator output.""" |
| 266 | + config = PropagatorConfig( |
| 267 | + composite=[TextMapPropagatorConfig(tracecontext={})] |
| 268 | + ) |
| 269 | + with patch( |
| 270 | + "opentelemetry.sdk._configuration._propagator.set_global_textmap" |
| 271 | + ) as mock_set: |
| 272 | + configure_propagator(config) |
| 273 | + propagator = mock_set.call_args[0][0] |
| 274 | + self.assertEqual(len(propagator._propagators), 1) # type: ignore[attr-defined] |
| 275 | + self.assertIsInstance( |
| 276 | + propagator._propagators[0], TraceContextTextMapPropagator # type: ignore[attr-defined] |
| 277 | + ) |
0 commit comments