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,28 @@ 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+ [
54+ BeginTransactionRequest ,
55+ CommitRequest ,
56+ BeginTransactionRequest ,
57+ CommitRequest ,
58+ ],
59+ TransactionType .READ_WRITE ,
60+ )
5961
6062 def test_run_in_transaction_update_aborted (self ):
6163 add_update_count ("update my_table set my_col=1 where id=2" , 1 )
6264 add_error (SpannerServicer .ExecuteSql .__name__ , aborted_status ())
6365 self .database .run_in_transaction (_execute_update )
64-
65- # Verify that the transaction was retried.
6666 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 ) )
67+ self .assert_requests_sequence (
68+ requests ,
69+ [ ExecuteSqlRequest , ExecuteSqlRequest , CommitRequest ],
70+ TransactionType . READ_WRITE ,
71+ )
7272
7373 def test_run_in_transaction_query_aborted (self ):
7474 add_single_result (
@@ -79,28 +79,24 @@ def test_run_in_transaction_query_aborted(self):
7979 )
8080 add_error (SpannerServicer .ExecuteStreamingSql .__name__ , aborted_status ())
8181 self .database .run_in_transaction (_execute_query )
82-
83- # Verify that the transaction was retried.
8482 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 ) )
83+ self .assert_requests_sequence (
84+ requests ,
85+ [ ExecuteSqlRequest , ExecuteSqlRequest , CommitRequest ],
86+ TransactionType . READ_WRITE ,
87+ )
9088
9189 def test_run_in_transaction_batch_dml_aborted (self ):
9290 add_update_count ("update my_table set my_col=1 where id=1" , 1 )
9391 add_update_count ("update my_table set my_col=1 where id=2" , 1 )
9492 add_error (SpannerServicer .ExecuteBatchDml .__name__ , aborted_status ())
9593 self .database .run_in_transaction (_execute_batch_dml )
96-
97- # Verify that the transaction was retried.
9894 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 ) )
95+ self .assert_requests_sequence (
96+ requests ,
97+ [ ExecuteBatchDmlRequest , ExecuteBatchDmlRequest , CommitRequest ],
98+ TransactionType . READ_WRITE ,
99+ )
104100
105101 def test_batch_commit_aborted (self ):
106102 # Add an Aborted error for the Commit method on the mock server.
@@ -117,14 +113,12 @@ def test_batch_commit_aborted(self):
117113 (5 , "David" , "Lomond" ),
118114 ],
119115 )
120-
121- # Verify that the transaction was retried.
122116 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 ) )
117+ self .assert_requests_sequence (
118+ requests ,
119+ [ CommitRequest , CommitRequest ],
120+ TransactionType . READ_WRITE ,
121+ )
128122
129123 @retry_maybe_aborted_txn
130124 def test_retry_helper (self ):
0 commit comments