Skip to content

Commit 3cc6a68

Browse files
committed
Update trace_context test.
1 parent f12499b commit 3cc6a68

File tree

1 file changed

+39
-81
lines changed

1 file changed

+39
-81
lines changed

tests/test_otel.py

Lines changed: 39 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ def test_do_request(
275275
@pytest.mark.parametrize("otel_mode", [0, 1], ids=["to mock", "to otelcol"])
276276
class TestOTelSpans:
277277
@pytest.mark.parametrize(
278-
("idx", "value"), [(0, 10), (1, 10), (2, 10)], ids=["batch"] * 3
278+
("idx", "value"), enumerate([10] * 3), ids=["batch"] * 3
279279
)
280280
def test_batch_size(self, http_ver, batches, idx, value, otel_mode):
281281
assert len(batches[idx][0].scope_spans[0].spans) == value
@@ -442,34 +442,28 @@ def test_no_custom_metrics(
442442
):
443443
assert span_attr(span, name, atype) == value
444444

445+
@pytest.mark.parametrize("idx", [0, 1], ids=["no context", "context"])
445446
@pytest.mark.parametrize(
446-
("name", "value", "idx"),
447+
("name", "value"),
447448
[
448-
("X-Otel-Trace-Id", "trace_id", 0),
449-
("X-Otel-Span-Id", "span_id", 0),
450-
("X-Otel-Parent-Id", None, 0),
451-
("X-Otel-Parent-Sampled", "0", 0),
452-
("X-Otel-Trace-Id", trace_id, 1),
453-
("X-Otel-Span-Id", "span_id", 1),
454-
("X-Otel-Parent-Id", span_id, 1),
455-
("X-Otel-Parent-Sampled", "1", 1),
449+
("X-Otel-Trace-Id", ["trace_id", trace_id]),
450+
("X-Otel-Span-Id", ["span_id"] * 2),
451+
("X-Otel-Parent-Id", [None, span_id]),
452+
("X-Otel-Parent-Sampled", ["0", "1"]),
456453
],
457454
ids=[
458-
"otel_trace_id-no context",
459-
"otel_span_id-no context",
460-
"otel_parent_id-no context",
461-
"otel_parent_sampled-no context",
462-
"otel_trace_id-context",
463-
"otel_span_id-context",
464-
"otel_parent_id-context",
465-
"otel_parent_sampled-context",
455+
"otel_trace_id",
456+
"otel_span_id",
457+
"otel_parent_id",
458+
"otel_parent_sampled",
466459
],
467460
)
468461
def test_variables(
469462
self, http_ver, span, headers, name, value, idx, otel_mode
470463
):
471464
if http_ver == 0:
472465
pytest.skip("no headers support")
466+
value = value[idx]
473467
if type(value) is str and value in ["trace_id", "span_id"]:
474468
value = hexlify(getattr(span, value)).decode("utf-8")
475469
assert headers.get(name) == value
@@ -497,77 +491,41 @@ def test_no_variables(self, http_ver, headers, name, value, idx, otel_mode):
497491
assert headers.get(name) == value
498492

499493
@pytest.mark.parametrize(
500-
("name", "value", "idx"),
494+
"idx",
495+
range(2, 10),
496+
ids=["ingnore-no context", "ingnore-context"]
497+
+ ["extract-no context", "extract-context"]
498+
+ ["inject-no context", "inject-context"]
499+
+ ["propagate-no context", "propagate-context"],
500+
)
501+
@pytest.mark.parametrize(
502+
("name", "value"),
501503
[
502-
("X-Otel-Parent-Id", None, 2),
503-
("X-Otel-Traceparent", None, 2),
504-
("X-Otel-Tracestate", None, 2),
505-
("X-Otel-Parent-Id", None, 3),
506-
("X-Otel-Traceparent", context["Traceparent"], 3),
507-
("X-Otel-Tracestate", context["Tracestate"], 3),
508-
]
509-
+ [
510-
("X-Otel-Parent-Id", None, 4),
511-
("X-Otel-Traceparent", None, 4),
512-
("X-Otel-Tracestate", None, 4),
513-
("X-Otel-Parent-Id", span_id, 5),
514-
("X-Otel-Traceparent", context["Traceparent"], 5),
515-
("X-Otel-Tracestate", context["Tracestate"], 5),
516-
]
517-
+ [
518-
("X-Otel-Parent-Id", None, 6),
519-
("X-Otel-Traceparent", "00-trace_id-span_id-01", 6),
520-
("X-Otel-Tracestate", None, 6),
521-
("X-Otel-Parent-Id", None, 7),
522-
("X-Otel-Traceparent", "00-trace_id-span_id-01", 7),
523-
("X-Otel-Tracestate", None, 7),
524-
]
525-
+ [
526-
("X-Otel-Parent-Id", None, 8),
527-
("X-Otel-Traceparent", "00-trace_id-span_id-01", 8),
528-
("X-Otel-Tracestate", None, 8),
529-
("X-Otel-Parent-Id", span_id, 9),
530-
("X-Otel-Traceparent", f"00-{trace_id}-span_id-01", 9),
531-
("X-Otel-Tracestate", context["Tracestate"], 9),
532-
],
533-
ids=[
534-
"ignore-parent id-no context",
535-
"ignore-traceparent-no context",
536-
"ignore-tracestate-no context",
537-
"ignore-parent id-context",
538-
"ignore-traceparent-context",
539-
"ignore-tracestate-context",
540-
]
541-
+ [
542-
"extract-parent id-no context",
543-
"extract-traceparent-no context",
544-
"extract-tracestate-no context",
545-
"extract-parent id-context",
546-
"extract-traceparent-context",
547-
"extract-tracestate-context",
548-
]
549-
+ [
550-
"inject-parent id-no context",
551-
"inject-traceparent-no context",
552-
"inject-tracestate-no context",
553-
"inject-parent id-context",
554-
"inject-traceparent-context",
555-
"inject-tracestate-context",
556-
]
557-
+ [
558-
"propagate-parent id-no context",
559-
"propagate-traceparent-no context",
560-
"propagate-tracestate-no context",
561-
"propagate-parent id-context",
562-
"propagate-traceparent-context",
563-
"propagate-tracestate-context",
504+
(
505+
"X-Otel-Parent-Id",
506+
[None] * 3 + [span_id] + [None] * 3 + [span_id],
507+
),
508+
(
509+
"X-Otel-Traceparent",
510+
[None, context["Traceparent"]] * 2
511+
+ ["00-trace_id-span_id-01"] * 3
512+
+ [f"00-{trace_id}-span_id-01"],
513+
),
514+
(
515+
"X-Otel-Tracestate",
516+
[None, context["Tracestate"]] * 2
517+
+ [None] * 3
518+
+ [context["Tracestate"]],
519+
),
564520
],
521+
ids=["parent id", "traceparent", "tracestate"],
565522
)
566523
def test_trace_context(
567524
self, http_ver, span, headers, name, value, idx, otel_mode
568525
):
569526
if http_ver == 0:
570527
pytest.skip("no headers support")
528+
value = value[idx - 2]
571529
if type(value) is str:
572530
value = "-".join(
573531
(

0 commit comments

Comments
 (0)