Skip to content

Commit 3f40de3

Browse files
test: Unfinished span behavior
Add a test which demonstrates how unfinished spans are handled. We will use this to compare behavior with `potel-base`
1 parent 9e1cedd commit 3f40de3

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import sentry_sdk
2+
3+
4+
def perform_test(sentry_init, capture_events):
5+
sentry_init(
6+
traces_sample_rate=1.0,
7+
)
8+
9+
events = capture_events()
10+
11+
with sentry_sdk.start_transaction(name="test"):
12+
with sentry_sdk.start_span(name="span0"):
13+
pass
14+
15+
span1 = sentry_sdk.start_span(name="span1").__enter__()
16+
17+
with sentry_sdk.start_span(name="span2"):
18+
pass
19+
20+
span1.__exit__(None, None, None)
21+
22+
return events, span1
23+
24+
25+
def test_unfinished_spans_sdk_2(sentry_init, capture_events):
26+
events, span1 = perform_test(sentry_init, capture_events)
27+
28+
(event,) = events
29+
30+
assert event["transaction"] == "test"
31+
32+
spans_by_name = {span["description"]: span for span in event["spans"]}
33+
34+
assert {"span0", "span2"} == spans_by_name.keys()
35+
assert (
36+
spans_by_name["span0"]["parent_span_id"]
37+
== event["contexts"]["trace"]["span_id"]
38+
)
39+
assert spans_by_name["span2"]["parent_span_id"] == span1.span_id
40+
41+
42+
def test_unfinished_spans_sdk_3(sentry_init, capture_events):
43+
events, _ = perform_test(sentry_init, capture_events)
44+
45+
(event,) = events
46+
47+
assert event["transaction"] == "test"
48+
49+
spans_by_name = {span["description"]: span for span in event["spans"]}
50+
51+
assert {"span0"} == spans_by_name.keys()
52+
assert (
53+
spans_by_name["span0"]["parent_span_id"]
54+
== event["contexts"]["trace"]["span_id"]
55+
)

0 commit comments

Comments
 (0)