Skip to content

Commit e4213a3

Browse files
committed
test(arq): Update streaming tests for enqueue guard
The retry re-enqueue happens without an active span, so no producer (queue.submit.arq) span is created for it. Adjust the positional span assertions in test_job_retry and test_span_origin_consumer to account for the suppressed producer span.
1 parent e09daea commit e4213a3

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

tests/integrations/arq/test_arq.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -245,18 +245,22 @@ async def retry_job(ctx):
245245
sentry_sdk.flush()
246246
spans = [item.payload for item in items]
247247

248-
assert spans[4]["attributes"]["sentry.op"] == "queue.task.arq"
249-
assert spans[4]["status"] == "ok"
250-
assert spans[4]["name"] == "retry_job"
248+
# The retry re-enqueue happens without an active span, so no producer
249+
# (queue.submit.arq) span is created for it; only the consumer segment
250+
# is emitted. The consumer segment is preceded by the redis spans for
251+
# the re-enqueue, so it lands at index 3.
252+
assert spans[3]["attributes"]["sentry.op"] == "queue.task.arq"
253+
assert spans[3]["status"] == "ok"
254+
assert spans[3]["name"] == "retry_job"
251255

252256
await worker.run_job(job.job_id, timestamp_ms())
253257

254258
sentry_sdk.flush()
255259
spans = [item.payload for item in items]
256260

257-
assert spans[7]["attributes"]["sentry.op"] == "queue.task.arq"
258-
assert spans[7]["status"] == "ok"
259-
assert spans[7]["name"] == "retry_job"
261+
assert spans[6]["attributes"]["sentry.op"] == "queue.task.arq"
262+
assert spans[6]["status"] == "ok"
263+
assert spans[6]["name"] == "retry_job"
260264
else:
261265
events = capture_events()
262266

@@ -594,10 +598,13 @@ async def job(ctx):
594598
sentry_sdk.flush()
595599
spans = [item.payload for item in items]
596600

597-
assert spans[4]["attributes"]["sentry.op"] == "queue.task.arq"
598-
assert spans[4]["attributes"]["sentry.origin"] == "auto.queue.arq"
599-
assert spans[3]["attributes"]["sentry.origin"] == "auto.db.redis"
601+
# No producer (queue.submit.arq) span is created for the re-enqueue
602+
# triggered by the retry, since it happens without an active span, so
603+
# the consumer segment lands at index 3.
604+
assert spans[3]["attributes"]["sentry.op"] == "queue.task.arq"
605+
assert spans[3]["attributes"]["sentry.origin"] == "auto.queue.arq"
600606
assert spans[2]["attributes"]["sentry.origin"] == "auto.db.redis"
607+
assert spans[1]["attributes"]["sentry.origin"] == "auto.db.redis"
601608
else:
602609
job = await pool.enqueue_job("retry_job")
603610

0 commit comments

Comments
 (0)