@@ -2246,25 +2246,26 @@ def test_delete_rows_is_atomic(conn_name, request):
22462246 replacing_df = DataFrame ({"a" : [5 , 6 , 7 ], "b" : [8 , 8 , 8 ]}, dtype = "int32" )
22472247
22482248 conn = request .getfixturevalue (conn_name )
2249- pandasSQL = pandasSQL_builder (conn )
2249+ with pandasSQL_builder (conn ) as pandasSQL :
2250+ with pandasSQL .run_transaction () as cur :
2251+ cur .execute (table_stmt )
22502252
2251- with pandasSQL .run_transaction () as cur :
2252- cur . execute ( table_stmt )
2253+ with pandasSQL .run_transaction ():
2254+ pandasSQL . to_sql ( original_df , table_name , if_exists = "append" , index = False )
22532255
2254- with pandasSQL .run_transaction ():
2255- pandasSQL .to_sql (original_df , table_name , if_exists = "append" , index = False )
2256+ # inserting duplicated values in a UNIQUE constraint column
2257+ with pytest .raises (pd .errors .DatabaseError ):
2258+ with pandasSQL .run_transaction ():
2259+ pandasSQL .to_sql (
2260+ replacing_df , table_name , if_exists = "delete_rows" , index = False
2261+ )
22562262
2257- # inserting duplicated values in a UNIQUE constraint column
2258- with pytest .raises (pd .errors .DatabaseError ):
2263+ # failed "delete_rows" is rolled back preserving original data
22592264 with pandasSQL .run_transaction ():
2260- pandasSQL .to_sql (
2261- replacing_df , table_name , if_exists = "delete_rows" , index = False
2265+ result_df = pandasSQL .read_query (
2266+ f"SELECT * FROM { table_name } " , dtype = "int32"
22622267 )
2263-
2264- # failed "delete_rows" is rolled back preserving original data
2265- with pandasSQL .run_transaction ():
2266- result_df = pandasSQL .read_query (f"SELECT * FROM { table_name } " , dtype = "int32" )
2267- tm .assert_frame_equal (result_df , original_df )
2268+ tm .assert_frame_equal (result_df , original_df )
22682269
22692270
22702271@pytest .mark .parametrize ("conn" , all_connectable )
0 commit comments