mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-29 13:12:39 +08:00
74 lines
2.4 KiB
Python
74 lines
2.4 KiB
Python
from unittest import TestCase
|
|
from tests.test_tracer import get_dummy_tracer
|
|
|
|
from ddtrace.propagation.http import (
|
|
HTTPPropagator,
|
|
HTTP_HEADER_TRACE_ID,
|
|
HTTP_HEADER_PARENT_ID,
|
|
HTTP_HEADER_SAMPLING_PRIORITY,
|
|
HTTP_HEADER_ORIGIN,
|
|
)
|
|
|
|
|
|
class TestHttpPropagation(TestCase):
|
|
"""
|
|
Tests related to the ``Context`` class that hosts the trace for the
|
|
current execution flow.
|
|
"""
|
|
|
|
def test_inject(self):
|
|
tracer = get_dummy_tracer()
|
|
|
|
with tracer.trace("global_root_span") as span:
|
|
span.context.sampling_priority = 2
|
|
span.context._dd_origin = "synthetics"
|
|
headers = {}
|
|
propagator = HTTPPropagator()
|
|
propagator.inject(span.context, headers)
|
|
|
|
assert int(headers[HTTP_HEADER_TRACE_ID]) == span.trace_id
|
|
assert int(headers[HTTP_HEADER_PARENT_ID]) == span.span_id
|
|
assert int(headers[HTTP_HEADER_SAMPLING_PRIORITY]) == span.context.sampling_priority
|
|
assert headers[HTTP_HEADER_ORIGIN] == span.context._dd_origin
|
|
|
|
def test_extract(self):
|
|
tracer = get_dummy_tracer()
|
|
|
|
headers = {
|
|
"x-datadog-trace-id": "1234",
|
|
"x-datadog-parent-id": "5678",
|
|
"x-datadog-sampling-priority": "1",
|
|
"x-datadog-origin": "synthetics",
|
|
}
|
|
|
|
propagator = HTTPPropagator()
|
|
context = propagator.extract(headers)
|
|
tracer.context_provider.activate(context)
|
|
|
|
with tracer.trace("local_root_span") as span:
|
|
assert span.trace_id == 1234
|
|
assert span.parent_id == 5678
|
|
assert span.context.sampling_priority == 1
|
|
assert span.context._dd_origin == "synthetics"
|
|
|
|
def test_WSGI_extract(self):
|
|
"""Ensure we support the WSGI formatted headers as well."""
|
|
tracer = get_dummy_tracer()
|
|
|
|
headers = {
|
|
"HTTP_X_DATADOG_TRACE_ID": "1234",
|
|
"HTTP_X_DATADOG_PARENT_ID": "5678",
|
|
"HTTP_X_DATADOG_SAMPLING_PRIORITY": "1",
|
|
"HTTP_X_DATADOG_ORIGIN": "synthetics",
|
|
}
|
|
|
|
propagator = HTTPPropagator()
|
|
context = propagator.extract(headers)
|
|
tracer.context_provider.activate(context)
|
|
|
|
with tracer.trace("local_root_span") as span:
|
|
assert span.trace_id == 1234
|
|
assert span.parent_id == 5678
|
|
assert span.context.sampling_priority == 1
|
|
assert span.context._dd_origin == "synthetics"
|