15
15
from unittest import TestCase
16
16
17
17
from 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
+ )
19
22
20
23
21
24
class TestEntryPoints (TestCase ):
@@ -24,11 +27,82 @@ def test_entry_points(self):
24
27
self .assertIsInstance (
25
28
next (
26
29
iter (
27
- entry_points (
30
+ importlib_metadata_entry_points (
28
31
group = "opentelemetry_meter_provider" ,
29
32
name = "default_meter_provider" ,
30
33
)
31
34
)
32
35
).load ()(),
33
36
MeterProvider ,
34
37
)
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