Skip to content

Commit d31749c

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 d31749c

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import sentry_sdk
2+
3+
4+
def test_unfinished_spans(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+
(event,) = events
23+
assert event["transaction"] == "test"
24+
25+
spans_by_name = {span["description"]: span for span in event["spans"]}
26+
assert {"span0", "span2"} == spans_by_name.keys()
27+
28+
assert (
29+
spans_by_name["span0"]["parent_span_id"]
30+
== event["contexts"]["trace"]["span_id"]
31+
)
32+
assert spans_by_name["span2"]["parent_span_id"] == span1.span_id

0 commit comments

Comments
 (0)