3232)
3333from google .api_core import exceptions
3434from test_utils import retry
35+ from google .cloud .spanner_v1 .database_sessions_manager import TransactionType
3536
3637retry_maybe_aborted_txn = retry .RetryErrors (
3738 exceptions .Aborted , max_tries = 5 , delay = 0 , backoff = 1
@@ -46,29 +47,23 @@ def test_run_in_transaction_commit_aborted(self):
4647 # time that the transaction tries to commit. It will then be retried
4748 # and succeed.
4849 self .database .run_in_transaction (_insert_mutations )
49-
50- # Verify that the transaction was retried.
5150 requests = self .spanner_service .requests
52- self .assertEqual (5 , len (requests ), msg = requests )
53- self .assertTrue (isinstance (requests [0 ], BatchCreateSessionsRequest ))
54- self .assertTrue (isinstance (requests [1 ], BeginTransactionRequest ))
55- self .assertTrue (isinstance (requests [2 ], CommitRequest ))
56- # The transaction is aborted and retried.
57- self .assertTrue (isinstance (requests [3 ], BeginTransactionRequest ))
58- self .assertTrue (isinstance (requests [4 ], CommitRequest ))
51+ self .assert_requests_sequence (
52+ requests ,
53+ [BeginTransactionRequest , CommitRequest , BeginTransactionRequest , CommitRequest ],
54+ TransactionType .READ_WRITE ,
55+ )
5956
6057 def test_run_in_transaction_update_aborted (self ):
6158 add_update_count ("update my_table set my_col=1 where id=2" , 1 )
6259 add_error (SpannerServicer .ExecuteSql .__name__ , aborted_status ())
6360 self .database .run_in_transaction (_execute_update )
64-
65- # Verify that the transaction was retried.
6661 requests = self .spanner_service .requests
67- self .assertEqual ( 4 , len ( requests ), msg = requests )
68- self . assertTrue ( isinstance ( requests [ 0 ], BatchCreateSessionsRequest ))
69- self . assertTrue ( isinstance ( requests [ 1 ] , ExecuteSqlRequest ))
70- self . assertTrue ( isinstance ( requests [ 2 ], ExecuteSqlRequest ))
71- self . assertTrue ( isinstance ( requests [ 3 ], CommitRequest ) )
62+ self .assert_requests_sequence (
63+ requests ,
64+ [ ExecuteSqlRequest , ExecuteSqlRequest , CommitRequest ],
65+ TransactionType . READ_WRITE ,
66+ )
7267
7368 def test_run_in_transaction_query_aborted (self ):
7469 add_single_result (
@@ -79,28 +74,24 @@ def test_run_in_transaction_query_aborted(self):
7974 )
8075 add_error (SpannerServicer .ExecuteStreamingSql .__name__ , aborted_status ())
8176 self .database .run_in_transaction (_execute_query )
82-
83- # Verify that the transaction was retried.
8477 requests = self .spanner_service .requests
85- self .assertEqual ( 4 , len ( requests ), msg = requests )
86- self . assertTrue ( isinstance ( requests [ 0 ], BatchCreateSessionsRequest ))
87- self . assertTrue ( isinstance ( requests [ 1 ] , ExecuteSqlRequest ))
88- self . assertTrue ( isinstance ( requests [ 2 ], ExecuteSqlRequest ))
89- self . assertTrue ( isinstance ( requests [ 3 ], CommitRequest ) )
78+ self .assert_requests_sequence (
79+ requests ,
80+ [ ExecuteSqlRequest , ExecuteSqlRequest , CommitRequest ],
81+ TransactionType . READ_WRITE ,
82+ )
9083
9184 def test_run_in_transaction_batch_dml_aborted (self ):
9285 add_update_count ("update my_table set my_col=1 where id=1" , 1 )
9386 add_update_count ("update my_table set my_col=1 where id=2" , 1 )
9487 add_error (SpannerServicer .ExecuteBatchDml .__name__ , aborted_status ())
9588 self .database .run_in_transaction (_execute_batch_dml )
96-
97- # Verify that the transaction was retried.
9889 requests = self .spanner_service .requests
99- self .assertEqual ( 4 , len ( requests ), msg = requests )
100- self . assertTrue ( isinstance ( requests [ 0 ], BatchCreateSessionsRequest ))
101- self . assertTrue ( isinstance ( requests [ 1 ] , ExecuteBatchDmlRequest ))
102- self . assertTrue ( isinstance ( requests [ 2 ], ExecuteBatchDmlRequest ))
103- self . assertTrue ( isinstance ( requests [ 3 ], CommitRequest ) )
90+ self .assert_requests_sequence (
91+ requests ,
92+ [ ExecuteBatchDmlRequest , ExecuteBatchDmlRequest , CommitRequest ],
93+ TransactionType . READ_WRITE ,
94+ )
10495
10596 def test_batch_commit_aborted (self ):
10697 # Add an Aborted error for the Commit method on the mock server.
@@ -117,14 +108,12 @@ def test_batch_commit_aborted(self):
117108 (5 , "David" , "Lomond" ),
118109 ],
119110 )
120-
121- # Verify that the transaction was retried.
122111 requests = self .spanner_service .requests
123- self .assertEqual ( 3 , len ( requests ), msg = requests )
124- self . assertTrue ( isinstance ( requests [ 0 ], BatchCreateSessionsRequest ))
125- self . assertTrue ( isinstance ( requests [ 1 ] , CommitRequest ))
126- # The transaction is aborted and retried.
127- self . assertTrue ( isinstance ( requests [ 2 ], CommitRequest ) )
112+ self .assert_requests_sequence (
113+ requests ,
114+ [ CommitRequest , CommitRequest ],
115+ TransactionType . READ_WRITE ,
116+ )
128117
129118 @retry_maybe_aborted_txn
130119 def test_retry_helper (self ):
0 commit comments