Skip to content

Commit f49939a

Browse files
committed
Add test and expose b3 propagator via entry points
1 parent 15e3b54 commit f49939a

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

opentelemetry-api/tests/propagators/test_propagators.py

+41-1
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
# limitations under the License.
1414

1515
from importlib import reload
16+
from os import environ
1617
from unittest import TestCase
17-
from unittest.mock import patch
18+
from unittest.mock import Mock, patch
1819

1920
from opentelemetry.baggage.propagation import BaggagePropagator
21+
from opentelemetry.configuration import Configuration
2022
from opentelemetry.trace.propagation.tracecontext import (
2123
TraceContextTextMapPropagator,
2224
)
@@ -41,3 +43,41 @@ def test_propagators(propagators):
4143
import opentelemetry.propagators
4244

4345
reload(opentelemetry.propagators)
46+
47+
@patch.dict(environ, {"OTEL_PROPAGATORS": "a,b,c"})
48+
@patch("opentelemetry.propagators.composite.CompositeHTTPPropagator")
49+
@patch("pkg_resources.iter_entry_points")
50+
def test_non_default_propagators(
51+
self, mock_iter_entry_points, mock_compositehttppropagator
52+
):
53+
54+
Configuration._reset()
55+
56+
def iter_entry_points_mock(_, propagator):
57+
return iter(
58+
[
59+
Mock(
60+
**{
61+
"load.side_effect": [
62+
Mock(**{"side_effect": [propagator]})
63+
]
64+
}
65+
)
66+
]
67+
)
68+
69+
mock_iter_entry_points.configure_mock(
70+
**{"side_effect": iter_entry_points_mock}
71+
)
72+
73+
def test_propagators(propagators):
74+
75+
self.assertEqual(propagators, ["a", "b", "c"])
76+
77+
mock_compositehttppropagator.configure_mock(
78+
**{"side_effect": test_propagators}
79+
)
80+
81+
import opentelemetry.propagators
82+
83+
reload(opentelemetry.propagators)

opentelemetry-sdk/setup.cfg

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ opentelemetry_meter_provider =
5151
sdk_meter_provider = opentelemetry.sdk.metrics:MeterProvider
5252
opentelemetry_tracer_provider =
5353
sdk_tracer_provider = opentelemetry.sdk.trace:TracerProvider
54+
opentelemetry_propagator =
55+
b3 = opentelemetry.sdk.trace.propagation.b3_format.B3Format
5456

5557
[options.extras_require]
5658
test =

0 commit comments

Comments
 (0)