Skip to content

Commit b48d1c2

Browse files
committed
chore(propagator): modify extract function and test cases
1 parent 5815a7b commit b48d1c2

8 files changed

+228
-111
lines changed

propagator/opentelemetry-propagator-env/src/opentelemetry/propagators/env/composite_propagator.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ def extract(self, carrier: CarrierT, context: typing.Optional[Context] = None, g
4040
self._propagators = [TraceContextTextMapPropagator(), W3CBaggagePropagator()]
4141

4242
for propagator in self._propagators:
43-
if isinstance(propagator, B3SingleFormat):
44-
context = B3MultiFormat().extract(carrier, context, getter)
45-
else:
46-
context = propagator.extract(carrier, context, getter)
43+
context = propagator.extract(carrier, context, getter)
4744
return context
4845

4946
def inject(self, carrier: CarrierT, context: typing.Optional[Context] = None, setter: Setter = textmap.default_setter) -> None:

propagator/opentelemetry-propagator-env/src/opentelemetry/propagators/env/propagator.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ def __init__(self, formatter):
3636

3737
# delegating to extract function implementation of the formatter
3838
def extract(self, carrier: CarrierT, context: typing.Optional[Context] = None, getter: Getter = DefaultGetter()) -> Context:
39-
if isinstance(self.formatter, B3SingleFormat):
40-
return B3MultiFormat().extract(carrier = carrier, context=context, getter = getter)
4139
return self.formatter.extract(carrier = carrier, context=context, getter = getter)
4240

4341
# delegating to inject function implementation of the formatter

propagator/opentelemetry-propagator-env/tests/test_b3_multi_format_baggage_composite_env_propagator.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,6 @@ def test_extract_when_b3_format_is_valid_and_baggage_invalid(self):
412412
@mock.patch.dict(os.environ, {"baggage": "key1=value1,key2=value2"})
413413
def test_extract_when_baggage_is_valid_but_b3_spanid_is_invalid(self):
414414
extracted_context = self.composite_propagator_b3_baggage_object.extract(carrier = os.environ, getter = getter)
415-
print("****extracted_context: ***", extracted_context)
416415
self.assertEqual(baggage.get_all(extracted_context), {'key1':'value1', 'key2':'value2'})
417416

418417
@mock.patch.dict(os.environ, {"x-b3-traceid": "98fea4de58eca772"})

propagator/opentelemetry-propagator-env/tests/test_b3_multi_format_tracecontext_composite_env_propagator.py

Lines changed: 107 additions & 38 deletions
Large diffs are not rendered by default.

propagator/opentelemetry-propagator-env/tests/test_b3_single_format_tracecontext_composite_env_propagator.py

Lines changed: 94 additions & 40 deletions
Large diffs are not rendered by default.

propagator/opentelemetry-propagator-env/tests/test_tracecontext_baggage_composite_env_propagator.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ def test_inject_when_traceid_has_16_hex_char(self):
307307

308308
def test_extract_when_no_trace_details(self):
309309
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract(getter = getter, carrier = os.environ)
310-
self.assertEqual(extracted_context , {})
310+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
311311

312312
@mock.patch.dict(os.environ, {"b3": "8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-1-e28bf981e15deb7f"})
313313
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-01"})
@@ -356,13 +356,13 @@ def test_extract_when_baggage_is_valid_and_traceid_of_w3c_has_16_hex_char(self):
356356
@mock.patch.dict(os.environ, {"traceparent": "00-8128c5-136eec09c948be26-01"})
357357
def test_extract_when_w3c_traceid_is_invalid(self):
358358
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract(getter = getter, carrier = os.environ)
359-
self.assertEqual(extracted_context , {})
359+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
360360

361361
@mock.patch.dict(os.environ, {"b3": "8128c50fd8653b5d98fea4de-136eec09c-1-e28bf981e15deb7f"})
362-
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de-136eec09c-01"})
362+
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50-136eec09c-01"})
363363
def test_extract_when_w3c_traceid_and_spanid_are_invalid(self):
364364
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract(getter = getter, carrier = os.environ)
365-
self.assertEqual(extracted_context , {})
365+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
366366

367367
@mock.patch.dict(os.environ, {"b3": "8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-1-e28bf981e15deb7f"})
368368
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-01"})
@@ -380,7 +380,7 @@ def test_extract_when_baggage_is_not_present_in_os_environ(self):
380380
@mock.patch.dict(os.environ, {"baggage": "example1-value1;example2-value2"})
381381
def test_extract_baggage_invalid_format(self):
382382
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract(getter = getter, carrier = os.environ)
383-
self.assertEqual(extracted_context , {})
383+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
384384

385385
@mock.patch.dict(os.environ, {"baggage": "example1=value1%2Cvalue2,example2=value3%2Cvalue4"})
386386
def test_extract_when_baggage_with_valid_format_has_commas_in_values(self):
@@ -393,7 +393,7 @@ def test_extract_when_baggage_with_valid_format_has_commas_in_values(self):
393393

394394
def test_extract_context_when_no_trace_details(self):
395395
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract_context()
396-
self.assertEqual(extracted_context , {})
396+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
397397

398398
@mock.patch.dict(os.environ, {"b3": "8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-1-e28bf981e15deb7f"})
399399
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-01"})
@@ -444,13 +444,13 @@ def test_extract_context_when_baggage_is_valid_and_traceid_of_w3c_has_16_hex_cha
444444
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de-136eec09c948be26-01"})
445445
def test_extract_context_when_w3c_traceid_is_invalid(self):
446446
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract_context()
447-
self.assertEqual(extracted_context , {})
447+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
448448

449449
@mock.patch.dict(os.environ, {"b3": "8128c50fd8653b5d98fea4de-136eec09c-1-e28bf981e15deb7f"})
450450
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de-136eec09c-01"})
451451
def test_extract_context_when_w3c_traceid_and_spanid_are_invalid(self):
452452
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract_context()
453-
self.assertEqual(extracted_context , {})
453+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
454454

455455
@mock.patch.dict(os.environ, {"b3": "8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-1-e28bf981e15deb7f"})
456456
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-01"})
@@ -468,7 +468,7 @@ def test_extract_context_when_baggage_is_not_present_os_environ(self):
468468
@mock.patch.dict(os.environ, {"baggage": "example1-value1;example2-value2"})
469469
def test_extract_context_baggage_invalid_format(self):
470470
extracted_context = self.composite_env_propagator_baggage_w3c_object.extract_context()
471-
self.assertEqual(extracted_context , {})
471+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
472472

473473
@mock.patch.dict(os.environ, {"baggage": "example1=value1%2Cvalue2,example2=value3%2Cvalue4"})
474474
def test_extract_context_when_baggage_with_valid_format_has_commas_in_values(self):

propagator/opentelemetry-propagator-env/tests/test_tracecontext_composite_env_propagator.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,27 +142,27 @@ def test_extract_valid_w3cformat_present_in_environment_variable(self):
142142
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec06-a"})
143143
def test_extract_w3cformat_with_invalid_span_id(self):
144144
extracted_context = self.composite_env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
145-
self.assertEqual(extracted_context , {})
145+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
146146

147147
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50ed865ca77-136eec06ae45ae57-1"})
148148
def test_extract_w3cformat_with_invalid_trace_id_having_16_hex_char(self):
149149
extracted_context = self.composite_env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
150-
self.assertEqual( extracted_context , {})
150+
self.assertEqual( opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
151151

152152
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd865ca77-136eec06-1"})
153153
def test_extract_w3cformat_with_invalid_trace_id_and_span_id(self):
154154
extracted_context = self.composite_env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
155-
self.assertEqual(extracted_context , {})
155+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
156156

157157
def test_extract_when_no_trace_details_in_w3c_format(self):
158158
extracted_context = self.composite_env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
159-
self.assertEqual(extracted_context , {})
159+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
160160

161161
# test cases for extract_context
162162

163163
def test_extract_context_when_no_trace_details(self):
164164
extracted_context = self.composite_env_propagator_w3c_obj.extract_context()
165-
self.assertEqual(extracted_context , {})
165+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
166166

167167
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-01"})
168168
def test_extract_context_valid_w3cformat_in_environment_variable(self):
@@ -176,14 +176,14 @@ def test_extract_context_valid_w3cformat_in_environment_variable(self):
176176
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec06-a"})
177177
def test_extract_context_w3cformat_with_invalid_span_id(self):
178178
extracted_context = self.composite_env_propagator_w3c_obj.extract_context()
179-
self.assertEqual(extracted_context , {})
179+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
180180

181181
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50ed865ca77-136eec06ae45ae57-1"})
182182
def test_extract_context_w3cformat_with_invalid_trace_id_having_16_hex_char(self):
183183
extracted_context = self.composite_env_propagator_w3c_obj.extract_context()
184-
self.assertEqual(extracted_context , {})
184+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
185185

186186
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd865ca77-136eec06-1"})
187187
def test_extract_context_w3cformat_with_invalid_trace_id_and_span_id(self):
188188
extracted_context = self.composite_env_propagator_w3c_obj.extract_context()
189-
self.assertEqual(extracted_context , {})
189+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)

propagator/opentelemetry-propagator-env/tests/test_tracecontext_env_propagator.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,22 +109,22 @@ def test_inject_to_carrier_when_attached_context_and_context_passed_as_param_are
109109

110110
def test_extract_context_when_no_trace_details_in_w3c_format(self):
111111
extracted_context_w3c = self.env_propagator_w3c_obj.extract_context()
112-
self.assertEqual(extracted_context_w3c , {})
112+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context_w3c), opentelemetry.trace.span.INVALID_SPAN)
113113

114114
@mock.patch.dict(os.environ, {'traceparent': '00-123-136eec09c948be26-1'})
115115
def test_extract_context_when_traceid_format_does_not_match_regex_for_w3c(self):
116116
extracted_context = self.env_propagator_w3c_obj.extract_context()
117-
self.assertEqual(extracted_context , {})
117+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
118118

119119
@mock.patch.dict(os.environ, {'traceparent': '00-8128c50fd8653b5d98fea4de58eca772-136e-1'})
120120
def test_extract_context_when_spanid_format_does_not_match_regex_for_w3c(self):
121121
extracted_context = self.env_propagator_w3c_obj.extract_context()
122-
self.assertEqual(extracted_context , {})
122+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
123123

124124
@mock.patch.dict(os.environ, {'traceparent': '00-123-136-1'})
125125
def test_extract_context_when_traceid_and_spanid_format_do_not_match_regex_for_w3c(self):
126126
extracted_context = self.env_propagator_w3c_obj.extract_context()
127-
self.assertEqual(extracted_context , {})
127+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
128128

129129
@mock.patch.dict(os.environ, {'traceparent': '00-8128c50fd8653b5d98fea4de58eca772-136eec09c948be26-01'})
130130
@mock.patch.dict(os.environ, {'tracestate': 'congo=t61rcWkgMzE'})
@@ -189,23 +189,23 @@ def test_extract_when_valid_w3cformat_in_environment_variable(self):
189189
@mock.patch.dict(os.environ, {"traceparent": "00-8128ca772-136eec06-01"})
190190
def test_extract_when_invalid_w3cformat_in_environment_variable(self):
191191
extracted_context = self.env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
192-
self.assertEqual(extracted_context , {})
192+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
193193

194194
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d98fea4de58eca772-136eec06-01"})
195195
def test_extract_w3cformat_with_invalid_span_id(self):
196196
extracted_context = self.env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
197-
self.assertEqual(extracted_context , {})
197+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
198198

199199
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd8653b5d-136eec06ae45ae57-01"})
200200
def test_extract_w3cformat_with_trace_id_having_16_hex_char(self):
201201
extracted_context = self.env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
202-
self.assertEqual(extracted_context , {})
202+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
203203

204204
@mock.patch.dict(os.environ, {"traceparent": "00-8128c50fd865ca77-136eec06-01"})
205205
def test_extract_w3cformat_with_invalid_trace_id_and_span_id(self):
206206
extracted_context = self.env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
207-
self.assertEqual(extracted_context , {})
207+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)
208208

209209
def test_extract_when_no_trace_details_in_w3c_format(self):
210210
extracted_context = self.env_propagator_w3c_obj.extract(getter = getter, carrier = os.environ)
211-
self.assertEqual(extracted_context , {})
211+
self.assertEqual(opentelemetry.trace.get_current_span(extracted_context), opentelemetry.trace.span.INVALID_SPAN)

0 commit comments

Comments
 (0)