Skip to content

Commit

Permalink
adding unit test case for ASGI framework for application wrapped with… (
Browse files Browse the repository at this point in the history
#899)

* adding unit test case for ASGI framework for application wrapped with another framework

* resolving lint errors

* resolving generate build errors

* resolving flake errors

Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
  • Loading branch information
sanketmehta28 and ocelotl committed Feb 3, 2022
1 parent 0180b83 commit 0431d7b
Showing 1 changed file with 34 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
setup_testing_defaults,
)
from opentelemetry.test.test_base import TestBase
from opentelemetry.trace import format_span_id, format_trace_id
from opentelemetry.trace import SpanKind, format_span_id, format_trace_id


async def http_app(scope, receive, send):
Expand Down Expand Up @@ -550,5 +550,38 @@ def test_credential_removal(self):
)


class TestWrappedApplication(AsgiTestBase):
def test_mark_span_internal_in_presence_of_span_from_other_framework(self):
tracer_provider, exporter = TestBase.create_tracer_provider()
tracer = tracer_provider.get_tracer(__name__)
app = otel_asgi.OpenTelemetryMiddleware(
simple_asgi, tracer_provider=tracer_provider
)

# Wrapping the otel intercepted app with server span
async def wrapped_app(scope, receive, send):
with tracer.start_as_current_span(
"test", kind=SpanKind.SERVER
) as _:
await app(scope, receive, send)

self.seed_app(wrapped_app)
self.send_default_request()
span_list = exporter.get_finished_spans()

self.assertEqual(SpanKind.INTERNAL, span_list[0].kind)
self.assertEqual(SpanKind.INTERNAL, span_list[1].kind)
self.assertEqual(SpanKind.INTERNAL, span_list[2].kind)
self.assertEqual(trace_api.SpanKind.INTERNAL, span_list[3].kind)

# SERVER "test"
self.assertEqual(SpanKind.SERVER, span_list[4].kind)

# internal span should be child of the test span we have provided
self.assertEqual(
span_list[4].context.span_id, span_list[3].parent.span_id
)


if __name__ == "__main__":
unittest.main()

0 comments on commit 0431d7b

Please sign in to comment.