Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions tests/tracing/test_unfinished_spans.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import sentry_sdk


def perform_test(sentry_init, capture_events):
sentry_init(
traces_sample_rate=1.0,
)

events = capture_events()

with sentry_sdk.start_transaction(name="test"):
with sentry_sdk.start_span(name="span0"):
pass

span1 = sentry_sdk.start_span(name="span1").__enter__()

with sentry_sdk.start_span(name="span2"):
pass

span1.__exit__(None, None, None)

return events, span1


def test_unfinished_spans_sdk_2(sentry_init, capture_events):
events, span1 = perform_test(sentry_init, capture_events)

(event,) = events

assert event["transaction"] == "test"

spans_by_name = {span["description"]: span for span in event["spans"]}

assert {"span0", "span2"} == spans_by_name.keys()
assert (
spans_by_name["span0"]["parent_span_id"]
== event["contexts"]["trace"]["span_id"]
)
assert spans_by_name["span2"]["parent_span_id"] == span1.span_id


def test_unfinished_spans_sdk_3(sentry_init, capture_events):
events, _ = perform_test(sentry_init, capture_events)

(event,) = events

assert event["transaction"] == "test"

spans_by_name = {span["description"]: span for span in event["spans"]}

assert {"span0"} == spans_by_name.keys()
assert (
spans_by_name["span0"]["parent_span_id"]
== event["contexts"]["trace"]["span_id"]
)
Loading