@@ -192,29 +192,38 @@ def test_db_no_autocommit_rollback_execute(sentry_init, client, capture_events):
192192
193193 assert event ["contexts" ]["trace" ]["origin" ] == "auto.http.django"
194194
195- commit_spans = [
195+ rollback_spans = [
196196 span
197197 for span in event ["spans" ]
198198 if span ["data" ].get (SPANDATA .DB_OPERATION ) == DBOPERATION .ROLLBACK
199199 ]
200- assert len (commit_spans ) == 1
201- commit_span = commit_spans [0 ]
202- assert commit_span ["origin" ] == "auto.db.django"
200+ assert len (rollback_spans ) == 1
201+ rollback_span = rollback_spans [0 ]
202+ assert rollback_span ["origin" ] == "auto.db.django"
203203
204204 # Verify other database attributes
205- assert commit_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "postgresql"
205+ assert rollback_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "postgresql"
206206 conn_params = connections ["postgres" ].get_connection_params ()
207- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) is not None
208- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
207+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) is not None
208+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
209209 "database"
210210 ) or conn_params .get ("dbname" )
211- assert commit_span ["data" ].get (SPANDATA .SERVER_ADDRESS ) == os .environ .get (
211+ assert rollback_span ["data" ].get (SPANDATA .SERVER_ADDRESS ) == os .environ .get (
212212 "SENTRY_PYTHON_TEST_POSTGRES_HOST" , "localhost"
213213 )
214- assert commit_span ["data" ].get (SPANDATA .SERVER_PORT ) == os .environ .get (
214+ assert rollback_span ["data" ].get (SPANDATA .SERVER_PORT ) == os .environ .get (
215215 "SENTRY_PYTHON_TEST_POSTGRES_PORT" , "5432"
216216 )
217217
218+ insert_spans = [
219+ span for span in event ["spans" ] if span ["description" ].startswith ("INSERT INTO" )
220+ ]
221+ assert len (insert_spans ) == 1
222+ insert_span = insert_spans [0 ]
223+
224+ # Verify query and commit statements are siblings
225+ assert rollback_span ["parent_span_id" ] == insert_span ["parent_span_id" ]
226+
218227
219228@pytest .mark .forked
220229@pytest_mark_django_db_decorator (transaction = True )
@@ -274,23 +283,31 @@ def test_db_no_autocommit_rollback_executemany(sentry_init, client, capture_even
274283 assert event ["contexts" ]["trace" ]["origin" ] == "manual"
275284 assert event ["spans" ][0 ]["origin" ] == "auto.db.django"
276285
277- commit_spans = [
286+ rollback_spans = [
278287 span
279288 for span in event ["spans" ]
280289 if span ["data" ].get (SPANDATA .DB_OPERATION ) == DBOPERATION .ROLLBACK
281290 ]
282- assert len (commit_spans ) == 1
283- commit_span = commit_spans [0 ]
284- assert commit_span ["origin" ] == "auto.db.django"
291+ assert len (rollback_spans ) == 1
292+ rollback_span = rollback_spans [0 ]
293+ assert rollback_span ["origin" ] == "auto.db.django"
285294
286295 # Verify other database attributes
287- assert commit_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "sqlite"
296+ assert rollback_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "sqlite"
288297 conn_params = connection .get_connection_params ()
289- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) is not None
290- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
298+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) is not None
299+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
291300 "database"
292301 ) or conn_params .get ("dbname" )
293302
303+ insert_spans = [
304+ span for span in event ["spans" ] if span ["description" ].startswith ("INSERT INTO" )
305+ ]
306+
307+ # Verify queries and commit statements are siblings
308+ for insert_span in insert_spans :
309+ assert rollback_span ["parent_span_id" ] == insert_span ["parent_span_id" ]
310+
294311
295312@pytest .mark .forked
296313@pytest_mark_django_db_decorator (transaction = True )
@@ -457,29 +474,38 @@ def test_db_atomic_rollback_execute(sentry_init, client, capture_events):
457474
458475 assert event ["contexts" ]["trace" ]["origin" ] == "auto.http.django"
459476
460- commit_spans = [
477+ rollback_spans = [
461478 span
462479 for span in event ["spans" ]
463480 if span ["data" ].get (SPANDATA .DB_OPERATION ) == DBOPERATION .ROLLBACK
464481 ]
465- assert len (commit_spans ) == 1
466- commit_span = commit_spans [0 ]
467- assert commit_span ["origin" ] == "auto.db.django"
482+ assert len (rollback_spans ) == 1
483+ rollback_span = rollback_spans [0 ]
484+ assert rollback_span ["origin" ] == "auto.db.django"
468485
469486 # Verify other database attributes
470- assert commit_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "postgresql"
487+ assert rollback_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "postgresql"
471488 conn_params = connections ["postgres" ].get_connection_params ()
472- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) is not None
473- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
489+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) is not None
490+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
474491 "database"
475492 ) or conn_params .get ("dbname" )
476- assert commit_span ["data" ].get (SPANDATA .SERVER_ADDRESS ) == os .environ .get (
493+ assert rollback_span ["data" ].get (SPANDATA .SERVER_ADDRESS ) == os .environ .get (
477494 "SENTRY_PYTHON_TEST_POSTGRES_HOST" , "localhost"
478495 )
479- assert commit_span ["data" ].get (SPANDATA .SERVER_PORT ) == os .environ .get (
496+ assert rollback_span ["data" ].get (SPANDATA .SERVER_PORT ) == os .environ .get (
480497 "SENTRY_PYTHON_TEST_POSTGRES_PORT" , "5432"
481498 )
482499
500+ insert_spans = [
501+ span for span in event ["spans" ] if span ["description" ].startswith ("INSERT INTO" )
502+ ]
503+ assert len (insert_spans ) == 1
504+ insert_span = insert_spans [0 ]
505+
506+ # Verify query and commit statements are siblings
507+ assert rollback_span ["parent_span_id" ] == insert_span ["parent_span_id" ]
508+
483509
484510@pytest .mark .forked
485511@pytest_mark_django_db_decorator (transaction = True )
@@ -537,19 +563,27 @@ def test_db_atomic_rollback_executemany(sentry_init, client, capture_events):
537563
538564 assert event ["contexts" ]["trace" ]["origin" ] == "manual"
539565
540- commit_spans = [
566+ rollback_spans = [
541567 span
542568 for span in event ["spans" ]
543569 if span ["data" ].get (SPANDATA .DB_OPERATION ) == DBOPERATION .ROLLBACK
544570 ]
545- assert len (commit_spans ) == 1
546- commit_span = commit_spans [0 ]
547- assert commit_span ["origin" ] == "auto.db.django"
571+ assert len (rollback_spans ) == 1
572+ rollback_span = rollback_spans [0 ]
573+ assert rollback_span ["origin" ] == "auto.db.django"
548574
549575 # Verify other database attributes
550- assert commit_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "sqlite"
576+ assert rollback_span ["data" ].get (SPANDATA .DB_SYSTEM ) == "sqlite"
551577 conn_params = connection .get_connection_params ()
552- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) is not None
553- assert commit_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
578+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) is not None
579+ assert rollback_span ["data" ].get (SPANDATA .DB_NAME ) == conn_params .get (
554580 "database"
555581 ) or conn_params .get ("dbname" )
582+
583+ insert_spans = [
584+ span for span in event ["spans" ] if span ["description" ].startswith ("INSERT INTO" )
585+ ]
586+
587+ # Verify queries and commit statements are siblings
588+ for insert_span in insert_spans :
589+ assert rollback_span ["parent_span_id" ] == insert_span ["parent_span_id" ]
0 commit comments