[Zodb-checkins] CVS: Zope3/src/transaction/tests - test_txn.py:1.2

Jeremy Hylton jeremy@zope.com
Fri, 7 Mar 2003 18:37:44 -0500


Update of /cvs-repository/Zope3/src/transaction/tests
In directory cvs.zope.org:/tmp/cvs-serv19879/src/transaction/tests

Modified Files:
	test_txn.py 
Log Message:
Catch errors that current during 2nd phase of 2PC.

It's not clear what the right answer is here.  The implementation
aborts any remaining resource managers and hopes for the best, which
isn't very satisfying.  Perhaps the hosed feature should come back.

Add some comments about the issues involved.  Revise the tests to
cover the current behavior.


=== Zope3/src/transaction/tests/test_txn.py 1.1 => 1.2 ===
--- Zope3/src/transaction/tests/test_txn.py:1.1	Thu Mar  6 19:18:21 2003
+++ Zope3/src/transaction/tests/test_txn.py	Fri Mar  7 18:37:39 2003
@@ -80,7 +80,6 @@
         self.assertEqual(txn.status(), Status.ABORTED)
         self.assertRaises(IllegalStateError, txn.commit)
         self.assertRaises(IllegalStateError, txn.savepoint)
-        self.assertRaises(IllegalStateError, txn.abort)
 
     def testTrivialSavepoint(self):
         txn = self.manager.begin()
@@ -129,6 +128,14 @@
         self.assertRaises(AbortError, txn.commit)
         self.assertEqual(txn.status(), Status.FAILED)
         self.assertRaises(IllegalStateError, txn.commit)
+        txn.abort()
+
+    def testCommitFailure(self):
+        txn = self.manager.begin()
+        txn.join(TestDataManager())
+        txn.join(TestDataManager(fail="commit"))
+        self.assertRaises(TransactionError, txn.commit)
+        self.assertEqual(txn.status(), Status.ABORTED)
         txn.abort()
 
 class SimpleTxnTests(BaseTxnTests):