Skip to content

Commit 49a3507

Browse files
committed
Add sample_rand to propagator tests
1 parent 9b24fe5 commit 49a3507

File tree

1 file changed

+61
-10
lines changed

1 file changed

+61
-10
lines changed

tests/integrations/opentelemetry/test_propagator.py

Lines changed: 61 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import pytest
1+
import decimal
2+
from unittest.mock import MagicMock, patch
23

3-
from unittest.mock import MagicMock
4+
import pytest
45

56
from opentelemetry.trace.propagation import get_current_span
67
from opentelemetry.propagators.textmap import DefaultSetter
@@ -139,11 +140,47 @@ def test_inject_continue_trace(sentry_init):
139140
"HTTP_BAGGAGE": baggage,
140141
}
141142

143+
expected_baggage = baggage + ",sentry-sample_rand=0.002849"
144+
145+
with patch(
146+
"sentry_sdk.tracing_utils.Random.uniform",
147+
return_value=decimal.Decimal("0.002849"),
148+
):
149+
with sentry_sdk.continue_trace(incoming_headers):
150+
with sentry_sdk.start_span(name="foo") as span:
151+
SentryPropagator().inject(carrier, setter=setter)
152+
assert carrier["sentry-trace"] == f"{trace_id}-{span.span_id}-1"
153+
assert carrier["baggage"] == SortedBaggage(expected_baggage)
154+
155+
156+
def test_inject_continue_trace_incoming_sample_rand(sentry_init):
157+
sentry_init(traces_sample_rate=1.0)
158+
159+
carrier = {}
160+
setter = DefaultSetter()
161+
162+
trace_id = "771a43a4192642f0b136d5159a501700"
163+
sentry_trace = "771a43a4192642f0b136d5159a501700-1234567890abcdef-1"
164+
baggage = (
165+
"sentry-trace_id=771a43a4192642f0b136d5159a501700,"
166+
"sentry-public_key=frontendpublickey,"
167+
"sentry-sample_rate=0.01337,"
168+
"sentry-sampled=true,"
169+
"sentry-release=myfrontend,"
170+
"sentry-environment=bird,"
171+
"sentry-transaction=bar,"
172+
"sentry-sample_rand=0.002849"
173+
)
174+
incoming_headers = {
175+
"HTTP_SENTRY_TRACE": sentry_trace,
176+
"HTTP_BAGGAGE": baggage,
177+
}
178+
142179
with sentry_sdk.continue_trace(incoming_headers):
143180
with sentry_sdk.start_span(name="foo") as span:
144181
SentryPropagator().inject(carrier, setter=setter)
145-
assert (carrier["sentry-trace"]) == f"{trace_id}-{span.span_id}-1"
146-
assert (carrier["baggage"]) == SortedBaggage(baggage)
182+
assert carrier["sentry-trace"] == f"{trace_id}-{span.span_id}-1"
183+
assert carrier["baggage"] == SortedBaggage(baggage)
147184

148185

149186
def test_inject_head_sdk(sentry_init):
@@ -152,9 +189,23 @@ def test_inject_head_sdk(sentry_init):
152189
carrier = {}
153190
setter = DefaultSetter()
154191

155-
with sentry_sdk.start_span(name="foo") as span:
156-
SentryPropagator().inject(carrier, setter=setter)
157-
assert (carrier["sentry-trace"]) == f"{span.trace_id}-{span.span_id}-1"
158-
assert (carrier["baggage"]) == SortedBaggage(
159-
f"sentry-transaction=foo,sentry-release=release,sentry-environment=production,sentry-trace_id={span.trace_id},sentry-sample_rate=1.0,sentry-sampled=true" # noqa: E231
160-
)
192+
expected_baggage = (
193+
"sentry-transaction=foo,"
194+
"sentry-release=release,"
195+
"sentry-environment=production,"
196+
"sentry-trace_id={trace_id},"
197+
"sentry-sample_rate=1.0,"
198+
"sentry-sampled=true,"
199+
"sentry-sample_rand=0.123456"
200+
)
201+
202+
with patch(
203+
"sentry_sdk.tracing_utils.Random.uniform",
204+
return_value=decimal.Decimal("0.123456"),
205+
):
206+
with sentry_sdk.start_span(name="foo") as span:
207+
SentryPropagator().inject(carrier, setter=setter)
208+
assert carrier["sentry-trace"] == f"{span.trace_id}-{span.span_id}-1"
209+
assert carrier["baggage"] == SortedBaggage(
210+
expected_baggage.format(trace_id=span.trace_id)
211+
)

0 commit comments

Comments
 (0)