1515from unittest import TestCase
1616
1717from opentelemetry .metrics import MeterProvider
18- from opentelemetry .util ._importlib_metadata import entry_points
18+ from opentelemetry .util ._importlib_metadata import EntryPoint , EntryPoints
19+ from opentelemetry .util ._importlib_metadata import (
20+ entry_points as importlib_metadata_entry_points ,
21+ )
1922
2023
2124class TestEntryPoints (TestCase ):
@@ -24,11 +27,82 @@ def test_entry_points(self):
2427 self .assertIsInstance (
2528 next (
2629 iter (
27- entry_points (
30+ importlib_metadata_entry_points (
2831 group = "opentelemetry_meter_provider" ,
2932 name = "default_meter_provider" ,
3033 )
3134 )
3235 ).load ()(),
3336 MeterProvider ,
3437 )
38+
39+ def test_uniform_behavior (self ):
40+ """
41+ Test that entry_points behaves the same regardless of the Python
42+ version.
43+ """
44+
45+ entry_points = importlib_metadata_entry_points ()
46+
47+ self .assertIsInstance (entry_points , EntryPoints )
48+
49+ entry_points = entry_points .select (group = "opentelemetry_propagator" )
50+ self .assertIsInstance (entry_points , EntryPoints )
51+
52+ entry_points = entry_points .select (name = "baggage" )
53+ self .assertIsInstance (entry_points , EntryPoints )
54+
55+ entry_point = next (iter (entry_points ))
56+ self .assertIsInstance (entry_point , EntryPoint )
57+
58+ self .assertEqual (entry_point .name , "baggage" )
59+ self .assertEqual (entry_point .group , "opentelemetry_propagator" )
60+ self .assertEqual (
61+ entry_point .value ,
62+ "opentelemetry.baggage.propagation:W3CBaggagePropagator" ,
63+ )
64+
65+ entry_points = importlib_metadata_entry_points (
66+ group = "opentelemetry_propagator"
67+ )
68+ self .assertIsInstance (entry_points , EntryPoints )
69+
70+ entry_points = entry_points .select (name = "baggage" )
71+ self .assertIsInstance (entry_points , EntryPoints )
72+
73+ entry_point = next (iter (entry_points ))
74+ self .assertIsInstance (entry_point , EntryPoint )
75+
76+ self .assertEqual (entry_point .name , "baggage" )
77+ self .assertEqual (entry_point .group , "opentelemetry_propagator" )
78+ self .assertEqual (
79+ entry_point .value ,
80+ "opentelemetry.baggage.propagation:W3CBaggagePropagator" ,
81+ )
82+
83+ entry_points = importlib_metadata_entry_points (name = "baggage" )
84+ self .assertIsInstance (entry_points , EntryPoints )
85+
86+ entry_point = next (iter (entry_points ))
87+ self .assertIsInstance (entry_point , EntryPoint )
88+
89+ self .assertEqual (entry_point .name , "baggage" )
90+ self .assertEqual (entry_point .group , "opentelemetry_propagator" )
91+ self .assertEqual (
92+ entry_point .value ,
93+ "opentelemetry.baggage.propagation:W3CBaggagePropagator" ,
94+ )
95+
96+ entry_points = importlib_metadata_entry_points (group = "abc" )
97+ self .assertIsInstance (entry_points , EntryPoints )
98+ self .assertEqual (len (entry_points ), 0 )
99+
100+ entry_points = importlib_metadata_entry_points (
101+ group = "opentelemetry_propagator" , name = "abc"
102+ )
103+ self .assertIsInstance (entry_points , EntryPoints )
104+ self .assertEqual (len (entry_points ), 0 )
105+
106+ entry_points = importlib_metadata_entry_points (group = "abc" , name = "abc" )
107+ self .assertIsInstance (entry_points , EntryPoints )
108+ self .assertEqual (len (entry_points ), 0 )
0 commit comments