|
25 | 25 |
|
26 | 26 | _FLASK_TRACE_ID = "flask0id"
|
27 | 27 | _FLASK_SPAN_ID = "span0flask"
|
| 28 | +_FLASK_SPAN_ID_XCTC_DEC = "12345" |
| 29 | +_FLASK_SPAN_ID_XCTC_HEX = "3039".zfill(16) |
28 | 30 | _FLASK_HTTP_REQUEST = {"requestUrl": "https://flask.palletsprojects.com/en/1.1.x/"}
|
29 | 31 | _DJANGO_TRACE_ID = "django0id"
|
30 | 32 | _DJANGO_SPAN_ID = "span0django"
|
| 33 | +_DJANGO_SPAN_ID_XCTC_DEC = "54321" |
| 34 | +_DJANGO_SPAN_ID_XCTC_HEX = "d431".zfill(16) |
31 | 35 | _DJANGO_HTTP_REQUEST = {"requestUrl": "https://www.djangoproject.com/"}
|
32 | 36 |
|
33 | 37 |
|
@@ -64,8 +68,9 @@ def test_no_context_header(self):
|
64 | 68 | def test_xcloud_header(self):
|
65 | 69 | flask_trace_header = "X_CLOUD_TRACE_CONTEXT"
|
66 | 70 | expected_trace_id = _FLASK_TRACE_ID
|
67 |
| - expected_span_id = _FLASK_SPAN_ID |
68 |
| - flask_trace_id = f"{expected_trace_id}/{expected_span_id};o=1" |
| 71 | + input_span_id = _FLASK_SPAN_ID_XCTC_DEC |
| 72 | + expected_span_id = _FLASK_SPAN_ID_XCTC_HEX |
| 73 | + flask_trace_id = f"{expected_trace_id}/{input_span_id};o=1" |
69 | 74 |
|
70 | 75 | app = self.create_app()
|
71 | 76 | context = app.test_request_context(
|
@@ -173,9 +178,10 @@ def test_xcloud_header(self):
|
173 | 178 | from google.cloud.logging_v2.handlers.middleware import request
|
174 | 179 |
|
175 | 180 | django_trace_header = "HTTP_X_CLOUD_TRACE_CONTEXT"
|
176 |
| - expected_span_id = _DJANGO_SPAN_ID |
| 181 | + input_span_id = _DJANGO_SPAN_ID_XCTC_DEC |
| 182 | + expected_span_id = _DJANGO_SPAN_ID_XCTC_HEX |
177 | 183 | expected_trace_id = _DJANGO_TRACE_ID
|
178 |
| - django_trace_id = f"{expected_trace_id}/{expected_span_id};o=1" |
| 184 | + django_trace_id = f"{expected_trace_id}/{input_span_id};o=1" |
179 | 185 |
|
180 | 186 | django_request = RequestFactory().get(
|
181 | 187 | "/", **{django_trace_header: django_trace_id}
|
@@ -501,43 +507,60 @@ def test_no_span(self):
|
501 | 507 | self.assertEqual(sampled, False)
|
502 | 508 |
|
503 | 509 | def test_no_trace(self):
|
504 |
| - header = "/12345" |
| 510 | + input_span = "12345" |
| 511 | + expected_span = "3039".zfill(16) |
| 512 | + header = f"/{input_span}" |
505 | 513 | trace_id, span_id, sampled = self._call_fut(header)
|
506 | 514 | self.assertIsNone(trace_id)
|
507 |
| - self.assertEqual(span_id, "12345") |
| 515 | + self.assertEqual(span_id, expected_span) |
508 | 516 | self.assertEqual(sampled, False)
|
509 | 517 |
|
510 | 518 | def test_with_span(self):
|
511 | 519 | expected_trace = "12345"
|
512 |
| - expected_span = "67890" |
513 |
| - header = f"{expected_trace}/{expected_span}" |
| 520 | + input_span = "67890" |
| 521 | + expected_span = "10932".zfill(16) |
| 522 | + header = f"{expected_trace}/{input_span}" |
514 | 523 | trace_id, span_id, sampled = self._call_fut(header)
|
515 | 524 | self.assertEqual(trace_id, expected_trace)
|
516 | 525 | self.assertEqual(span_id, expected_span)
|
517 | 526 | self.assertEqual(sampled, False)
|
518 | 527 |
|
| 528 | + def test_with_span_decimal_not_in_bounds(self): |
| 529 | + input_spans = ["0", "9" * 100] |
| 530 | + |
| 531 | + for input_span in input_spans: |
| 532 | + expected_trace = "12345" |
| 533 | + header = f"{expected_trace}/{input_span}" |
| 534 | + trace_id, span_id, sampled = self._call_fut(header) |
| 535 | + self.assertEqual(trace_id, expected_trace) |
| 536 | + self.assertIsNone(span_id) |
| 537 | + self.assertEqual(sampled, False) |
| 538 | + |
519 | 539 | def test_with_extra_characters(self):
|
520 | 540 | expected_trace = "12345"
|
521 |
| - expected_span = "67890" |
522 |
| - header = f"{expected_trace}/{expected_span};abc" |
| 541 | + input_span = "67890" |
| 542 | + expected_span = "10932".zfill(16) |
| 543 | + header = f"{expected_trace}/{input_span};abc" |
523 | 544 | trace_id, span_id, sampled = self._call_fut(header)
|
524 | 545 | self.assertEqual(trace_id, expected_trace)
|
525 | 546 | self.assertEqual(span_id, expected_span)
|
526 | 547 | self.assertEqual(sampled, False)
|
527 | 548 |
|
528 | 549 | def test_with_explicit_no_sampled(self):
|
529 | 550 | expected_trace = "12345"
|
530 |
| - expected_span = "67890" |
531 |
| - header = f"{expected_trace}/{expected_span};o=0" |
| 551 | + input_span = "67890" |
| 552 | + expected_span = "10932".zfill(16) |
| 553 | + header = f"{expected_trace}/{input_span};o=0" |
532 | 554 | trace_id, span_id, sampled = self._call_fut(header)
|
533 | 555 | self.assertEqual(trace_id, expected_trace)
|
534 | 556 | self.assertEqual(span_id, expected_span)
|
535 | 557 | self.assertEqual(sampled, False)
|
536 | 558 |
|
537 | 559 | def test_with__sampled(self):
|
538 | 560 | expected_trace = "12345"
|
539 |
| - expected_span = "67890" |
540 |
| - header = f"{expected_trace}/{expected_span};o=1" |
| 561 | + input_span = "67890" |
| 562 | + expected_span = "10932".zfill(16) |
| 563 | + header = f"{expected_trace}/{input_span};o=1" |
541 | 564 | trace_id, span_id, sampled = self._call_fut(header)
|
542 | 565 | self.assertEqual(trace_id, expected_trace)
|
543 | 566 | self.assertEqual(span_id, expected_span)
|
|
0 commit comments