1313# limitations under the License.
1414
1515from importlib import reload
16+ from os import environ
1617from unittest import TestCase
17- from unittest .mock import patch
18+ from unittest .mock import Mock , patch
1819
1920from opentelemetry .baggage .propagation import BaggagePropagator
21+ from opentelemetry .configuration import Configuration
2022from 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 )
0 commit comments