Skip to content

Commit e8f9b24

Browse files
committed
Add tests for Flask context propagation
1 parent 14e2e7a commit e8f9b24

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

tests/contrib/flask/test_flask.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
# project
1313
from ddtrace import Tracer
14+
from ddtrace.constants import SAMPLING_PRIORITY_KEY
1415
from ddtrace.contrib.flask import TraceMiddleware
1516
from ddtrace.ext import http, errors
1617
from ...test_tracer import DummyWriter
@@ -91,7 +92,7 @@ def handle_my_exception(e):
9192
# work)
9293
service = "test.flask.service"
9394
assert not writer.pop() # should always be empty
94-
traced_app = TraceMiddleware(app, tracer, service=service)
95+
traced_app = TraceMiddleware(app, tracer, service=service, use_distributed_tracing=True)
9596

9697
# make the app testable
9798
app.config['TESTING'] = True
@@ -341,3 +342,25 @@ def test_404(self):
341342
eq_(s.meta.get(http.STATUS_CODE), '404')
342343
eq_(s.meta.get(http.METHOD), 'GET')
343344
eq_(s.meta.get(http.URL), u'http://localhost/404/üŋïĉóđē')
345+
346+
def test_propagation(self):
347+
rv = app.get('/', headers={
348+
'x-datadog-trace-id': '1234',
349+
'x-datadog-parent-id': '4567',
350+
'x-datadog-sampling-priority': '2'
351+
})
352+
353+
# ensure request worked
354+
eq_(rv.status_code, 200)
355+
eq_(rv.data, b'hello')
356+
357+
# ensure trace worked
358+
assert not tracer.current_span(), tracer.current_span().pprint()
359+
spans = writer.pop()
360+
eq_(len(spans), 1)
361+
s = spans[0]
362+
363+
# ensure the propagation worked well
364+
eq_(s.trace_id, 1234)
365+
eq_(s.parent_id, 4567)
366+
eq_(s.get_metric(SAMPLING_PRIORITY_KEY), 2)

0 commit comments

Comments
 (0)