@@ -1074,83 +1074,6 @@ def callback(session):
1074
1074
1075
1075
# End Transactions withTxn API Example 1
1076
1076
1077
- @client_context .require_transactions
1078
- def test_transactions_beta (self ):
1079
- # Transaction beta examples
1080
- client = self .client
1081
- self .addCleanup (client .drop_database , "test" )
1082
-
1083
- db = client .test
1084
- shipment = db .create_collection ("shipment" )
1085
- inventory = db .create_collection ("inventory" )
1086
- inventory .insert_one ({"sku" : "abc123" , "qty" : 500 })
1087
-
1088
- # Start Beta Transaction Example 1
1089
- db = client .test
1090
- with client .start_session () as s :
1091
- with s .start_transaction ():
1092
- db .inventory .update_one ({'sku' : 'abc123' },
1093
- {'$inc' : {'qty' : - 100 }},
1094
- session = s )
1095
- db .shipment .insert_one ({'sku' : 'abc123' , 'qty' : 100 },
1096
- session = s )
1097
- # End Beta Transaction Example 1
1098
-
1099
- # Beta Transaction Example 1 with explicit start, commit, and abort.
1100
- with client .start_session () as s :
1101
- s .start_transaction ()
1102
- try :
1103
- db .inventory .update_one ({'sku' : 'abc123' },
1104
- {'$inc' : {'qty' : - 100 }},
1105
- session = s )
1106
- db .shipment .insert_one ({'sku' : 'abc123' , 'qty' : 100 },
1107
- session = s )
1108
- except Exception :
1109
- s .abort_transaction ()
1110
- raise
1111
- s .commit_transaction ()
1112
-
1113
- # Start Beta Transaction Example 2
1114
- db = client .test
1115
- shipment = db .get_collection ('shipment' ,
1116
- write_concern = WriteConcern (w = 'majority' ))
1117
-
1118
- # In the following block, the following write concerns are used:
1119
- # the update_one and insert_one operations uses w = 1,
1120
- # the transaction commit/abort uses w = 'majority'.
1121
- with client .start_session () as s :
1122
- with s .start_transaction (write_concern = WriteConcern (w = 'majority' )):
1123
- inventory .update_one ({'sku' : 'abc123' },
1124
- {'$inc' : {'qty' : - 100 }},
1125
- session = s )
1126
- shipment .insert_one ({'sku' : 'abc123' , 'qty' : 100 }, session = s )
1127
- # End Beta Transaction Example 2
1128
-
1129
- # Start Beta Transaction Example 3
1130
- def run_transaction (session , txn_callback ):
1131
- with session .start_transaction ():
1132
- txn_callback (session )
1133
-
1134
- def run_transaction_with_retry (session , txn_callback ):
1135
- try :
1136
- run_transaction (session , txn_callback )
1137
- except (OperationFailure , ConnectionFailure ) as exc :
1138
- if exc .has_error_label ("TransientTransactionError" ):
1139
- # Retry the entire transaction on temporary transaction
1140
- # failures.
1141
- run_transaction (session , txn_callback )
1142
- else :
1143
- raise
1144
-
1145
- def shipment_transaction (session ):
1146
- inventory .update_one ({'sku' : 'abc123' }, {'$inc' : {'qty' : - 100 }},
1147
- session = session )
1148
- shipment .insert_one ({'sku' : 'abc123' , 'qty' : 100 }, session = session )
1149
-
1150
- with client .start_session () as session :
1151
- run_transaction_with_retry (session , shipment_transaction )
1152
- # End Beta Transaction Example 3
1153
-
1154
1077
1155
1078
class TestCausalConsistencyExamples (IntegrationTest ):
1156
1079
@client_context .require_version_min (3 , 6 , 0 )
0 commit comments