Skip to content

Commit 22c8b1f

Browse files
committed
Add unit tests
1 parent 3b0414f commit 22c8b1f

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

Diff for: instrumentation/opentelemetry-instrumentation-django/tests/test_middleware.py

+30-1
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,16 @@
3131
)
3232
from opentelemetry.sdk import resources
3333
from opentelemetry.sdk.trace import Span
34+
from opentelemetry.sdk.trace.id_generator import RandomIdGenerator
3435
from opentelemetry.semconv.trace import SpanAttributes
3536
from opentelemetry.test.test_base import TestBase
3637
from opentelemetry.test.wsgitestutil import WsgiTestBase
37-
from opentelemetry.trace import SpanKind, StatusCode
38+
from opentelemetry.trace import (
39+
SpanKind,
40+
StatusCode,
41+
format_span_id,
42+
format_trace_id,
43+
)
3844
from opentelemetry.util.http import get_excluded_urls, get_traced_request_attrs
3945

4046
# pylint: disable=import-error
@@ -331,6 +337,29 @@ def response_hook(span, request, response):
331337
self.assertIsInstance(response_hook_args[2], HttpResponse)
332338
self.assertEqual(response_hook_args[2], response)
333339

340+
async def test_trace_parent(self):
341+
id_generator = RandomIdGenerator()
342+
trace_id = format_trace_id(id_generator.generate_trace_id())
343+
span_id = format_span_id(id_generator.generate_span_id())
344+
traceparent_value = f"00-{trace_id}-{span_id}-01"
345+
346+
Client().get(
347+
"/span_name/1234/", traceparent=traceparent_value,
348+
)
349+
span = self.memory_exporter.get_finished_spans()[0]
350+
351+
self.assertEqual(
352+
trace_id, format_trace_id(span.get_span_context().trace_id),
353+
)
354+
self.assertIsNotNone(span.parent)
355+
self.assertEqual(
356+
trace_id, format_trace_id(span.parent.trace_id),
357+
)
358+
self.assertEqual(
359+
span_id, format_span_id(span.parent.span_id),
360+
)
361+
self.memory_exporter.clear()
362+
334363
def test_trace_response_headers(self):
335364
response = Client().get("/span_name/1234/")
336365

Diff for: instrumentation/opentelemetry-instrumentation-django/tests/test_middleware_asgi.py

+24
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
)
3333
from opentelemetry.sdk import resources
3434
from opentelemetry.sdk.trace import Span
35+
from opentelemetry.sdk.trace.id_generator import RandomIdGenerator
3536
from opentelemetry.semconv.trace import SpanAttributes
3637
from opentelemetry.test.test_base import TestBase
3738
from opentelemetry.trace import (
@@ -317,6 +318,29 @@ def response_hook(span, request, response):
317318
self.assertIsInstance(response_hook_args[2], HttpResponse)
318319
self.assertEqual(response_hook_args[2], response)
319320

321+
async def test_trace_parent(self):
322+
id_generator = RandomIdGenerator()
323+
trace_id = format_trace_id(id_generator.generate_trace_id())
324+
span_id = format_span_id(id_generator.generate_span_id())
325+
traceparent_value = f"00-{trace_id}-{span_id}-01"
326+
327+
await self.async_client.get(
328+
"/span_name/1234/", traceparent=traceparent_value,
329+
)
330+
span = self.memory_exporter.get_finished_spans()[0]
331+
332+
self.assertEqual(
333+
trace_id, format_trace_id(span.get_span_context().trace_id),
334+
)
335+
self.assertIsNotNone(span.parent)
336+
self.assertEqual(
337+
trace_id, format_trace_id(span.parent.trace_id),
338+
)
339+
self.assertEqual(
340+
span_id, format_span_id(span.parent.span_id),
341+
)
342+
self.memory_exporter.clear()
343+
320344
async def test_trace_response_headers(self):
321345
response = await self.async_client.get("/span_name/1234/")
322346

0 commit comments

Comments
 (0)