|
11 | 11 |
|
12 | 12 | # project |
13 | 13 | from ddtrace import Tracer |
| 14 | +from ddtrace.constants import SAMPLING_PRIORITY_KEY |
14 | 15 | from ddtrace.contrib.flask import TraceMiddleware |
15 | 16 | from ddtrace.ext import http, errors |
16 | 17 | from ...test_tracer import DummyWriter |
@@ -91,7 +92,7 @@ def handle_my_exception(e): |
91 | 92 | # work) |
92 | 93 | service = "test.flask.service" |
93 | 94 | 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) |
95 | 96 |
|
96 | 97 | # make the app testable |
97 | 98 | app.config['TESTING'] = True |
@@ -341,3 +342,25 @@ def test_404(self): |
341 | 342 | eq_(s.meta.get(http.STATUS_CODE), '404') |
342 | 343 | eq_(s.meta.get(http.METHOD), 'GET') |
343 | 344 | 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