PYTHON-2054 Remove unused example TestTransactionExamples.test_transactions_beta
This commit is contained in:
parent
d37540ae15
commit
1fdfb9864b
@ -1074,83 +1074,6 @@ class TestTransactionExamples(IntegrationTest):
|
||||
|
||||
# End Transactions withTxn API Example 1
|
||||
|
||||
@client_context.require_transactions
|
||||
def test_transactions_beta(self):
|
||||
# Transaction beta examples
|
||||
client = self.client
|
||||
self.addCleanup(client.drop_database, "test")
|
||||
|
||||
db = client.test
|
||||
shipment = db.create_collection("shipment")
|
||||
inventory = db.create_collection("inventory")
|
||||
inventory.insert_one({"sku": "abc123", "qty": 500})
|
||||
|
||||
# Start Beta Transaction Example 1
|
||||
db = client.test
|
||||
with client.start_session() as s:
|
||||
with s.start_transaction():
|
||||
db.inventory.update_one({'sku': 'abc123'},
|
||||
{'$inc': {'qty': -100}},
|
||||
session=s)
|
||||
db.shipment.insert_one({'sku': 'abc123', 'qty': 100},
|
||||
session=s)
|
||||
# End Beta Transaction Example 1
|
||||
|
||||
# Beta Transaction Example 1 with explicit start, commit, and abort.
|
||||
with client.start_session() as s:
|
||||
s.start_transaction()
|
||||
try:
|
||||
db.inventory.update_one({'sku': 'abc123'},
|
||||
{'$inc': {'qty': -100}},
|
||||
session=s)
|
||||
db.shipment.insert_one({'sku': 'abc123', 'qty': 100},
|
||||
session=s)
|
||||
except Exception:
|
||||
s.abort_transaction()
|
||||
raise
|
||||
s.commit_transaction()
|
||||
|
||||
# Start Beta Transaction Example 2
|
||||
db = client.test
|
||||
shipment = db.get_collection('shipment',
|
||||
write_concern=WriteConcern(w='majority'))
|
||||
|
||||
# In the following block, the following write concerns are used:
|
||||
# the update_one and insert_one operations uses w = 1,
|
||||
# the transaction commit/abort uses w = 'majority'.
|
||||
with client.start_session() as s:
|
||||
with s.start_transaction(write_concern=WriteConcern(w='majority')):
|
||||
inventory.update_one({'sku': 'abc123'},
|
||||
{'$inc': {'qty': -100}},
|
||||
session=s)
|
||||
shipment.insert_one({'sku': 'abc123', 'qty': 100}, session=s)
|
||||
# End Beta Transaction Example 2
|
||||
|
||||
# Start Beta Transaction Example 3
|
||||
def run_transaction(session, txn_callback):
|
||||
with session.start_transaction():
|
||||
txn_callback(session)
|
||||
|
||||
def run_transaction_with_retry(session, txn_callback):
|
||||
try:
|
||||
run_transaction(session, txn_callback)
|
||||
except (OperationFailure, ConnectionFailure) as exc:
|
||||
if exc.has_error_label("TransientTransactionError"):
|
||||
# Retry the entire transaction on temporary transaction
|
||||
# failures.
|
||||
run_transaction(session, txn_callback)
|
||||
else:
|
||||
raise
|
||||
|
||||
def shipment_transaction(session):
|
||||
inventory.update_one({'sku': 'abc123'}, {'$inc': {'qty': -100}},
|
||||
session=session)
|
||||
shipment.insert_one({'sku': 'abc123', 'qty': 100}, session=session)
|
||||
|
||||
with client.start_session() as session:
|
||||
run_transaction_with_retry(session, shipment_transaction)
|
||||
# End Beta Transaction Example 3
|
||||
|
||||
|
||||
class TestCausalConsistencyExamples(IntegrationTest):
|
||||
@client_context.require_version_min(3, 6, 0)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user