20
20
# pylint:disable=import-error
21
21
import opentelemetry .exporter .jaeger as jaeger_exporter
22
22
from opentelemetry import trace as trace_api
23
+ from opentelemetry .configuration import Configuration
23
24
from opentelemetry .exporter .jaeger .gen .jaeger import ttypes as jaeger
24
25
from opentelemetry .sdk import trace
25
26
from opentelemetry .sdk .trace import Resource
@@ -43,20 +44,14 @@ def setUp(self):
43
44
def test_constructor_default (self ):
44
45
"""Test the default values assigned by constructor."""
45
46
service_name = "my-service-name"
46
- host_name = "localhost"
47
- thrift_port = None
47
+ agent_host_name = "localhost"
48
48
agent_port = 6831
49
- collector_endpoint = "/api/traces?format=jaeger.thrift"
50
- collector_protocol = "http"
51
49
exporter = jaeger_exporter .JaegerSpanExporter (service_name )
52
50
53
51
self .assertEqual (exporter .service_name , service_name )
54
- self .assertEqual (exporter .collector_host_name , None )
55
- self .assertEqual (exporter .agent_host_name , host_name )
52
+ self .assertEqual (exporter .agent_host_name , agent_host_name )
56
53
self .assertEqual (exporter .agent_port , agent_port )
57
- self .assertEqual (exporter .collector_port , thrift_port )
58
- self .assertEqual (exporter .collector_protocol , collector_protocol )
59
- self .assertEqual (exporter .collector_endpoint , collector_endpoint )
54
+ self .assertEqual (exporter .collector_endpoint , None )
60
55
self .assertEqual (exporter .username , None )
61
56
self .assertEqual (exporter .password , None )
62
57
self .assertTrue (exporter .collector is None )
@@ -65,10 +60,7 @@ def test_constructor_default(self):
65
60
def test_constructor_explicit (self ):
66
61
"""Test the constructor passing all the options."""
67
62
service = "my-opentelemetry-jaeger"
68
- collector_host_name = "opentelemetry.io"
69
- collector_port = 15875
70
- collector_endpoint = "/myapi/traces?format=jaeger.thrift"
71
- collector_protocol = "https"
63
+ collector_endpoint = "https://opentelemetry.io:15875"
72
64
73
65
agent_port = 14268
74
66
agent_host_name = "opentelemetry.io"
@@ -79,21 +71,16 @@ def test_constructor_explicit(self):
79
71
80
72
exporter = jaeger_exporter .JaegerSpanExporter (
81
73
service_name = service ,
82
- collector_host_name = collector_host_name ,
83
- collector_port = collector_port ,
84
- collector_endpoint = collector_endpoint ,
85
- collector_protocol = "https" ,
86
74
agent_host_name = agent_host_name ,
87
75
agent_port = agent_port ,
76
+ collector_endpoint = collector_endpoint ,
88
77
username = username ,
89
78
password = password ,
90
79
)
80
+
91
81
self .assertEqual (exporter .service_name , service )
92
82
self .assertEqual (exporter .agent_host_name , agent_host_name )
93
83
self .assertEqual (exporter .agent_port , agent_port )
94
- self .assertEqual (exporter .collector_host_name , collector_host_name )
95
- self .assertEqual (exporter .collector_port , collector_port )
96
- self .assertEqual (exporter .collector_protocol , collector_protocol )
97
84
self .assertTrue (exporter .collector is not None )
98
85
self .assertEqual (exporter .collector .auth , auth )
99
86
# property should not construct new object
@@ -107,6 +94,55 @@ def test_constructor_explicit(self):
107
94
self .assertNotEqual (exporter .collector , collector )
108
95
self .assertTrue (exporter .collector .auth is None )
109
96
97
+ def test_constructor_by_environment_variables (self ):
98
+ """Test the constructor using Environment Variables."""
99
+ service = "my-opentelemetry-jaeger"
100
+
101
+ agent_host_name = "opentelemetry.io"
102
+ agent_port = "6831"
103
+
104
+ collector_endpoint = "https://opentelemetry.io:15875"
105
+
106
+ username = "username"
107
+ password = "password"
108
+ auth = (username , password )
109
+
110
+ environ_patcher = mock .patch .dict (
111
+ "os.environ" ,
112
+ {
113
+ "OTEL_EXPORTER_JAEGER_AGENT_HOST" : agent_host_name ,
114
+ "OTEL_EXPORTER_JAEGER_AGENT_PORT" : agent_port ,
115
+ "OTEL_EXPORTER_JAEGER_ENDPOINT" : collector_endpoint ,
116
+ "OTEL_EXPORTER_JAEGER_USER" : username ,
117
+ "OTEL_EXPORTER_JAEGER_PASSWORD" : password ,
118
+ },
119
+ )
120
+
121
+ environ_patcher .start ()
122
+
123
+ exporter = jaeger_exporter .JaegerSpanExporter (service_name = service )
124
+
125
+ self .assertEqual (exporter .service_name , service )
126
+ self .assertEqual (exporter .agent_host_name , agent_host_name )
127
+ self .assertEqual (exporter .agent_port , int (agent_port ))
128
+ self .assertTrue (exporter .collector is not None )
129
+ self .assertEqual (exporter .collector_endpoint , collector_endpoint )
130
+ self .assertEqual (exporter .collector .auth , auth )
131
+ # property should not construct new object
132
+ collector = exporter .collector
133
+ self .assertEqual (exporter .collector , collector )
134
+ # property should construct new object
135
+ # pylint: disable=protected-access
136
+ exporter ._collector = None
137
+ exporter .username = None
138
+ exporter .password = None
139
+ self .assertNotEqual (exporter .collector , collector )
140
+ self .assertTrue (exporter .collector .auth is None )
141
+
142
+ environ_patcher .stop ()
143
+
144
+ Configuration ._reset ()
145
+
110
146
def test_nsec_to_usec_round (self ):
111
147
# pylint: disable=protected-access
112
148
nsec_to_usec_round = jaeger_exporter ._nsec_to_usec_round
0 commit comments