|
4 | 4 | from unittest.mock import MagicMock
|
5 | 5 |
|
6 | 6 | from opentelemetry.context import get_current
|
7 |
| -from opentelemetry.trace.propagation import get_current_span |
8 | 7 | from opentelemetry.trace import (
|
9 |
| - set_span_in_context, |
10 |
| - TraceFlags, |
11 | 8 | SpanContext,
|
| 9 | + TraceFlags, |
| 10 | + set_span_in_context, |
12 | 11 | )
|
| 12 | +from opentelemetry.trace.propagation import get_current_span |
| 13 | + |
13 | 14 | from sentry_sdk.integrations.opentelemetry.consts import (
|
14 | 15 | SENTRY_BAGGAGE_KEY,
|
15 | 16 | SENTRY_TRACE_KEY,
|
@@ -198,7 +199,50 @@ def test_inject_sentry_span_no_baggage():
|
198 | 199 | )
|
199 | 200 |
|
200 | 201 |
|
201 |
| -@pytest.mark.forked |
| 202 | +def test_inject_sentry_span_empty_baggage(): |
| 203 | + """ |
| 204 | + Inject a sentry span with no baggage. |
| 205 | + """ |
| 206 | + carrier = None |
| 207 | + context = get_current() |
| 208 | + setter = MagicMock() |
| 209 | + setter.set = MagicMock() |
| 210 | + |
| 211 | + trace_id = "1234567890abcdef1234567890abcdef" |
| 212 | + span_id = "1234567890abcdef" |
| 213 | + |
| 214 | + span_context = SpanContext( |
| 215 | + trace_id=int(trace_id, 16), |
| 216 | + span_id=int(span_id, 16), |
| 217 | + trace_flags=TraceFlags(TraceFlags.SAMPLED), |
| 218 | + is_remote=True, |
| 219 | + ) |
| 220 | + span = MagicMock() |
| 221 | + span.get_span_context.return_value = span_context |
| 222 | + |
| 223 | + sentry_span = MagicMock() |
| 224 | + sentry_span.to_traceparent = mock.Mock( |
| 225 | + return_value="1234567890abcdef1234567890abcdef-1234567890abcdef-1" |
| 226 | + ) |
| 227 | + sentry_span.containing_transaction.get_baggage = mock.Mock(return_value=Baggage({})) |
| 228 | + |
| 229 | + span_processor = SentrySpanProcessor() |
| 230 | + span_processor.otel_span_map[span_id] = sentry_span |
| 231 | + |
| 232 | + with mock.patch( |
| 233 | + "sentry_sdk.integrations.opentelemetry.propagator.trace.get_current_span", |
| 234 | + return_value=span, |
| 235 | + ): |
| 236 | + full_context = set_span_in_context(span, context) |
| 237 | + SentryPropagator().inject(carrier, full_context, setter) |
| 238 | + |
| 239 | + setter.set.assert_called_once_with( |
| 240 | + carrier, |
| 241 | + "sentry-trace", |
| 242 | + "1234567890abcdef1234567890abcdef-1234567890abcdef-1", |
| 243 | + ) |
| 244 | + |
| 245 | + |
202 | 246 | def test_inject_sentry_span_baggage():
|
203 | 247 | """
|
204 | 248 | Inject a sentry span with baggage.
|
|
0 commit comments