Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.5:Update
python-ZODB
transaction3.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File transaction3.patch of Package python-ZODB
From 0adcc6877f690186c97cc5da7e13788946d5e0df Mon Sep 17 00:00:00 2001 From: Jason Madden <jamadden@gmail.com> Date: Wed, 11 Dec 2019 10:24:00 -0600 Subject: [PATCH] Fix tests with transaction 3.0. Only test changes were required, no production code changes. --- src/ZODB/tests/testZODB.py | 7 +- src/ZODB/tests/test_datamanageradapter.py | 242 ---------------------- 3 files changed, 6 insertions(+), 245 deletions(-) delete mode 100644 src/ZODB/tests/test_datamanageradapter.py diff --git a/src/ZODB/tests/testZODB.py b/src/ZODB/tests/testZODB.py index c5f7949e9..2ec6c5af7 100644 --- a/src/ZODB/tests/testZODB.py +++ b/src/ZODB/tests/testZODB.py @@ -290,8 +290,9 @@ def checkFailingCommitSticks(self): rt['a'] = 1 # Arrange for commit to fail during tpc_vote. - poisoned = PoisonedObject(PoisonedJar(break_tpc_vote=True)) - transaction.get().register(poisoned) + poisoned_jar = PoisonedJar(break_tpc_vote=True) + poisoned = PoisonedObject(poisoned_jar) + transaction.get().join(poisoned_jar) self.assertRaises(PoisonedError, transaction.get().commit) # Trying to commit again fails too. @@ -314,7 +315,7 @@ def checkFailingCommitSticks(self): # Cleaning up via begin() should also work. rt['a'] = 2 - transaction.get().register(poisoned) + transaction.get().join(poisoned_jar) self.assertRaises(PoisonedError, transaction.commit) self.assertRaises(TransactionFailedError, transaction.commit) # The change to rt['a'] is lost. diff --git a/src/ZODB/tests/test_datamanageradapter.py b/src/ZODB/tests/test_datamanageradapter.py deleted file mode 100644 index cfeb40bf3..000000000 --- a/src/ZODB/tests/test_datamanageradapter.py +++ /dev/null @@ -1,242 +0,0 @@ -############################################################################## -# -# Copyright (c) 2003 Zope Foundation and Contributors. -# All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE. -# -############################################################################## -import unittest -from doctest import DocTestSuite -from transaction._transaction import DataManagerAdapter -from ZODB.tests.sampledm import DataManager - -def test_normal_commit(): - """ - So, we have a data manager: - - >>> dm = DataManager() - - and we do some work that modifies uncommited state: - - >>> dm.inc() - >>> dm.state, dm.delta - (0, 1) - - Now we'll commit the changes. When the data manager joins a transaction, - the transaction will create an adapter. - - >>> dma = DataManagerAdapter(dm) - - and register it as a modified object. At commit time, the - transaction will get the "jar" like this: - - >>> jar = getattr(dma, '_p_jar', dma) - - and, of course, the jar and the adapter will be the same: - - >>> jar is dma - True - - The transaction will call tpc_begin: - - >>> t1 = '1' - >>> jar.tpc_begin(t1) - - Then the transaction will call commit on the jar: - - >>> jar.commit(t1) - - This doesn't actually do anything. :) - - >>> dm.state, dm.delta - (0, 1) - - The transaction will then call tpc_vote: - - >>> jar.tpc_vote(t1) - - This prepares the data manager: - - >>> dm.state, dm.delta - (1, 1) - >>> dm.prepared - True - - Finally, tpc_finish is called: - - >>> jar.tpc_finish(t1) - - and the data manager finishes the two-phase commit: - - >>> dm.state, dm.delta - (1, 0) - >>> dm.prepared - False - """ - -def test_abort(): - """ - So, we have a data manager: - - >>> dm = DataManager() - - and we do some work that modifies uncommited state: - - >>> dm.inc() - >>> dm.state, dm.delta - (0, 1) - - When the data manager joins a transaction, - the transaction will create an adapter. - - >>> dma = DataManagerAdapter(dm) - - and register it as a modified object. - - Now we'll abort the transaction. The transaction will get the - "jar" like this: - - >>> jar = getattr(dma, '_p_jar', dma) - - and, of course, the jar and the adapter will be the same: - - >>> jar is dma - True - - Then the transaction will call abort on the jar: - - >>> t1 = '1' - >>> jar.abort(t1) - - Which aborts the changes in the data manager: - - >>> dm.state, dm.delta - (0, 0) - """ - -def test_tpc_abort_phase1(): - """ - So, we have a data manager: - - >>> dm = DataManager() - - and we do some work that modifies uncommited state: - - >>> dm.inc() - >>> dm.state, dm.delta - (0, 1) - - Now we'll commit the changes. When the data manager joins a transaction, - the transaction will create an adapter. - - >>> dma = DataManagerAdapter(dm) - - and register it as a modified object. At commit time, the - transaction will get the "jar" like this: - - >>> jar = getattr(dma, '_p_jar', dma) - - and, of course, the jar and the adapter will be the same: - - >>> jar is dma - True - - The transaction will call tpc_begin: - - >>> t1 = '1' - >>> jar.tpc_begin(t1) - - Then the transaction will call commit on the jar: - - >>> jar.commit(t1) - - This doesn't actually do anything. :) - - >>> dm.state, dm.delta - (0, 1) - - At this point, the transaction decides to abort. It calls tpc_abort: - - >>> jar.tpc_abort(t1) - - Which causes the state of the data manager to be restored: - - >>> dm.state, dm.delta - (0, 0) - """ - -def test_tpc_abort_phase2(): - """ - So, we have a data manager: - - >>> dm = DataManager() - - and we do some work that modifies uncommited state: - - >>> dm.inc() - >>> dm.state, dm.delta - (0, 1) - - Now we'll commit the changes. When the data manager joins a transaction, - the transaction will create an adapter. - - >>> dma = DataManagerAdapter(dm) - - and register it as a modified object. At commit time, the - transaction will get the "jar" like this: - - >>> jar = getattr(dma, '_p_jar', dma) - - and, of course, the jar and the adapter will be the same: - - >>> jar is dma - True - - The transaction will call tpc_begin: - - >>> t1 = '1' - >>> jar.tpc_begin(t1) - - Then the transaction will call commit on the jar: - - >>> jar.commit(t1) - - This doesn't actually do anything. :) - - >>> dm.state, dm.delta - (0, 1) - - The transaction calls vote: - - >>> jar.tpc_vote(t1) - - This prepares the data manager: - - >>> dm.state, dm.delta - (1, 1) - >>> dm.prepared - True - - At this point, the transaction decides to abort. It calls tpc_abort: - - >>> jar.tpc_abort(t1) - - Which causes the state of the data manager to be restored: - - >>> dm.state, dm.delta - (0, 0) - >>> dm.prepared - False - """ - -def test_suite(): - return DocTestSuite() - -if __name__ == '__main__': - unittest.main()
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor