Skip to content

Commit d9d7674

Browse files
committed
.
1 parent 75429dc commit d9d7674

File tree

1 file changed

+57
-14
lines changed

1 file changed

+57
-14
lines changed

tests/integrations/asgi/test_asgi.py

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -303,35 +303,78 @@ async def test_capture_transaction_with_error(
303303

304304

305305
@pytest.mark.asyncio
306+
@pytest.mark.parametrize(
307+
"span_streaming",
308+
[True, False],
309+
)
306310
async def test_has_trace_if_performance_enabled(
307311
sentry_init,
308312
asgi3_app_with_error_and_msg,
309313
capture_events,
314+
capture_items,
315+
span_streaming,
310316
):
311-
sentry_init(traces_sample_rate=1.0)
317+
sentry_init(
318+
traces_sample_rate=1.0,
319+
_experiments={
320+
"trace_lifecycle": "stream" if span_streaming else "static",
321+
},
322+
)
312323
app = SentryAsgiMiddleware(asgi3_app_with_error_and_msg)
313324

314325
with pytest.raises(ZeroDivisionError):
315326
async with TestClient(app) as client:
316-
events = capture_events()
327+
if span_streaming:
328+
items = capture_items("event", "span")
329+
else:
330+
events = capture_events()
317331
await client.get("/")
318332

319-
msg_event, error_event, transaction_event = events
333+
sentry_sdk.flush()
320334

321-
assert msg_event["contexts"]["trace"]
322-
assert "trace_id" in msg_event["contexts"]["trace"]
335+
if span_streaming:
336+
for item in items:
337+
print(item)
338+
print()
339+
msg_event, error_event, span = items
323340

324-
assert error_event["contexts"]["trace"]
325-
assert "trace_id" in error_event["contexts"]["trace"]
341+
assert msg_event.type == "event"
342+
msg_event = msg_event.payload
343+
assert msg_event["contexts"]["trace"]
344+
assert "trace_id" in msg_event["contexts"]["trace"]
326345

327-
assert transaction_event["contexts"]["trace"]
328-
assert "trace_id" in transaction_event["contexts"]["trace"]
346+
assert error_event.type == "event"
347+
error_event = error_event.payload
348+
assert error_event["contexts"]["trace"]
349+
assert "trace_id" in error_event["contexts"]["trace"]
329350

330-
assert (
331-
error_event["contexts"]["trace"]["trace_id"]
332-
== transaction_event["contexts"]["trace"]["trace_id"]
333-
== msg_event["contexts"]["trace"]["trace_id"]
334-
)
351+
assert span.type == "span"
352+
span = span.payload
353+
assert span["trace_id"] is not None
354+
355+
assert (
356+
error_event["contexts"]["trace"]["trace_id"]
357+
== msg_event["contexts"]["trace"]["trace_id"]
358+
== span["trace_id"]
359+
)
360+
361+
else:
362+
msg_event, error_event, transaction_event = events
363+
364+
assert msg_event["contexts"]["trace"]
365+
assert "trace_id" in msg_event["contexts"]["trace"]
366+
367+
assert error_event["contexts"]["trace"]
368+
assert "trace_id" in error_event["contexts"]["trace"]
369+
370+
assert transaction_event["contexts"]["trace"]
371+
assert "trace_id" in transaction_event["contexts"]["trace"]
372+
373+
assert (
374+
error_event["contexts"]["trace"]["trace_id"]
375+
== transaction_event["contexts"]["trace"]["trace_id"]
376+
== msg_event["contexts"]["trace"]["trace_id"]
377+
)
335378

336379

337380
@pytest.mark.asyncio

0 commit comments

Comments
 (0)