mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-08-01 06:33:52 +08:00
55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
import pytest
|
|
import tornado
|
|
|
|
from ddtrace.context import Context
|
|
from ddtrace.contrib.tornado import TracerStackContext
|
|
|
|
from .utils import TornadoTestCase
|
|
from .web.compat import sleep
|
|
|
|
|
|
class TestStackContext(TornadoTestCase):
|
|
@pytest.mark.skipif(tornado.version_info >= (5, 0),
|
|
reason='tornado.stack_context deprecated in Tornado 5.0 and removed in Tornado 6.0')
|
|
def test_without_stack_context(self):
|
|
# without a TracerStackContext, propagation is not available
|
|
ctx = self.tracer.context_provider.active()
|
|
assert ctx is None
|
|
|
|
def test_stack_context(self):
|
|
# a TracerStackContext should automatically propagate a tracing context
|
|
with TracerStackContext():
|
|
ctx = self.tracer.context_provider.active()
|
|
|
|
assert ctx is not None
|
|
|
|
def test_propagation_with_new_context(self):
|
|
# inside a TracerStackContext it should be possible to set
|
|
# a new Context for distributed tracing
|
|
with TracerStackContext():
|
|
ctx = Context(trace_id=100, span_id=101)
|
|
self.tracer.context_provider.activate(ctx)
|
|
with self.tracer.trace('tornado'):
|
|
sleep(0.01)
|
|
|
|
traces = self.tracer.writer.pop_traces()
|
|
assert len(traces) == 1
|
|
assert len(traces[0]) == 1
|
|
assert traces[0][0].trace_id == 100
|
|
assert traces[0][0].parent_id == 101
|
|
|
|
@pytest.mark.skipif(tornado.version_info >= (5, 0),
|
|
reason='tornado.stack_context deprecated in Tornado 5.0 and removed in Tornado 6.0')
|
|
def test_propagation_without_stack_context(self):
|
|
# a Context is discarded if not set inside a TracerStackContext
|
|
ctx = Context(trace_id=100, span_id=101)
|
|
self.tracer.context_provider.activate(ctx)
|
|
with self.tracer.trace('tornado'):
|
|
sleep(0.01)
|
|
|
|
traces = self.tracer.writer.pop_traces()
|
|
assert len(traces) == 1
|
|
assert len(traces[0]) == 1
|
|
assert traces[0][0].trace_id != 100
|
|
assert traces[0][0].parent_id != 101
|