[Checkins] SVN: transaction/branches/sphinx/ One test module per main module.
Tres Seaver
cvs-admin at zope.org
Mon Dec 17 22:09:13 UTC 2012
Log message for revision 128724:
One test module per main module.
Changed:
_U transaction/branches/sphinx/
U transaction/branches/sphinx/transaction/tests/test__manager.py
D transaction/branches/sphinx/transaction/tests/test_attempt.py
-=-
Modified: transaction/branches/sphinx/transaction/tests/test__manager.py
===================================================================
--- transaction/branches/sphinx/transaction/tests/test__manager.py 2012-12-17 22:09:12 UTC (rev 128723)
+++ transaction/branches/sphinx/transaction/tests/test__manager.py 2012-12-17 22:09:13 UTC (rev 128724)
@@ -189,6 +189,26 @@
self.assertFalse(txn._committed)
self.assertTrue(txn._aborted)
+ def test_savepoint_default(self):
+ class _Test(object):
+ _sp = None
+ def savepoint(self, optimistic):
+ self._sp = optimistic
+ tm = self._makeOne()
+ tm._txn = txn = _Test()
+ tm.savepoint()
+ self.assertFalse(txn._sp)
+
+ def test_savepoint_explicit(self):
+ class _Test(object):
+ _sp = None
+ def savepoint(self, optimistic):
+ self._sp = optimistic
+ tm = self._makeOne()
+ tm._txn = txn = _Test()
+ tm.savepoint(True)
+ self.assertTrue(txn._sp)
+
# basic tests with two sub trans jars
# really we only need one, so tests for
# sub1 should identical to tests for sub2
@@ -334,6 +354,93 @@
assert nosub1._p_jar.ctpc_abort == 1
+class AttemptTests(unittest.TestCase):
+
+ def _makeOne(self, manager):
+ from transaction._manager import Attempt
+ return Attempt(manager)
+
+ def test___enter__(self):
+ manager = DummyManager()
+ inst = self._makeOne(manager)
+ inst.__enter__()
+ self.assertTrue(manager.entered)
+
+ def test___exit__no_exc_no_commit_exception(self):
+ manager = DummyManager()
+ inst = self._makeOne(manager)
+ result = inst.__exit__(None, None, None)
+ self.assertFalse(result)
+ self.assertTrue(manager.committed)
+
+ def test___exit__no_exc_nonretryable_commit_exception(self):
+ manager = DummyManager(raise_on_commit=ValueError)
+ inst = self._makeOne(manager)
+ self.assertRaises(ValueError, inst.__exit__, None, None, None)
+ self.assertTrue(manager.committed)
+ self.assertTrue(manager.aborted)
+
+ def test___exit__no_exc_abort_exception_after_nonretryable_commit_exc(self):
+ manager = DummyManager(raise_on_abort=ValueError,
+ raise_on_commit=KeyError)
+ inst = self._makeOne(manager)
+ self.assertRaises(ValueError, inst.__exit__, None, None, None)
+ self.assertTrue(manager.committed)
+ self.assertTrue(manager.aborted)
+
+ def test___exit__no_exc_retryable_commit_exception(self):
+ from transaction.interfaces import TransientError
+ manager = DummyManager(raise_on_commit=TransientError)
+ inst = self._makeOne(manager)
+ result = inst.__exit__(None, None, None)
+ self.assertTrue(result)
+ self.assertTrue(manager.committed)
+ self.assertTrue(manager.aborted)
+
+ def test___exit__with_exception_value_retryable(self):
+ from transaction.interfaces import TransientError
+ manager = DummyManager()
+ inst = self._makeOne(manager)
+ result = inst.__exit__(TransientError, TransientError(), None)
+ self.assertTrue(result)
+ self.assertFalse(manager.committed)
+ self.assertTrue(manager.aborted)
+
+ def test___exit__with_exception_value_nonretryable(self):
+ manager = DummyManager()
+ inst = self._makeOne(manager)
+ self.assertRaises(KeyError, inst.__exit__, KeyError, KeyError(), None)
+ self.assertFalse(manager.committed)
+ self.assertTrue(manager.aborted)
+
+
+class DummyManager(object):
+ entered = False
+ committed = False
+ aborted = False
+
+ def __init__(self, raise_on_commit=None, raise_on_abort=None):
+ self.raise_on_commit = raise_on_commit
+ self.raise_on_abort = raise_on_abort
+
+ def _retryable(self, t, v):
+ from transaction._manager import TransientError
+ return issubclass(t, TransientError)
+
+ def __enter__(self):
+ self.entered = True
+
+ def abort(self):
+ self.aborted = True
+ if self.raise_on_abort:
+ raise self.raise_on_abort
+
+ def commit(self):
+ self.committed = True
+ if self.raise_on_commit:
+ raise self.raise_on_commit
+
+
class DataObject:
def __init__(self, transaction_manager, nost=0):
@@ -436,4 +543,5 @@
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(TransactionManagerTests),
+ unittest.makeSuite(AttemptTests),
))
Deleted: transaction/branches/sphinx/transaction/tests/test_attempt.py
===================================================================
--- transaction/branches/sphinx/transaction/tests/test_attempt.py 2012-12-17 22:09:12 UTC (rev 128723)
+++ transaction/branches/sphinx/transaction/tests/test_attempt.py 2012-12-17 22:09:13 UTC (rev 128724)
@@ -1,100 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2012 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
-
-
-class TestAttempt(unittest.TestCase):
-
- def _makeOne(self, manager):
- from transaction._manager import Attempt
- return Attempt(manager)
-
- def test___enter__(self):
- manager = DummyManager()
- inst = self._makeOne(manager)
- inst.__enter__()
- self.assertTrue(manager.entered)
-
- def test___exit__no_exc_no_commit_exception(self):
- manager = DummyManager()
- inst = self._makeOne(manager)
- result = inst.__exit__(None, None, None)
- self.assertFalse(result)
- self.assertTrue(manager.committed)
-
- def test___exit__no_exc_nonretryable_commit_exception(self):
- manager = DummyManager(raise_on_commit=ValueError)
- inst = self._makeOne(manager)
- self.assertRaises(ValueError, inst.__exit__, None, None, None)
- self.assertTrue(manager.committed)
- self.assertTrue(manager.aborted)
-
- def test___exit__no_exc_abort_exception_after_nonretryable_commit_exc(self):
- manager = DummyManager(raise_on_abort=ValueError,
- raise_on_commit=KeyError)
- inst = self._makeOne(manager)
- self.assertRaises(ValueError, inst.__exit__, None, None, None)
- self.assertTrue(manager.committed)
- self.assertTrue(manager.aborted)
-
- def test___exit__no_exc_retryable_commit_exception(self):
- from transaction.interfaces import TransientError
- manager = DummyManager(raise_on_commit=TransientError)
- inst = self._makeOne(manager)
- result = inst.__exit__(None, None, None)
- self.assertTrue(result)
- self.assertTrue(manager.committed)
- self.assertTrue(manager.aborted)
-
- def test___exit__with_exception_value_retryable(self):
- from transaction.interfaces import TransientError
- manager = DummyManager()
- inst = self._makeOne(manager)
- result = inst.__exit__(TransientError, TransientError(), None)
- self.assertTrue(result)
- self.assertFalse(manager.committed)
- self.assertTrue(manager.aborted)
-
- def test___exit__with_exception_value_nonretryable(self):
- manager = DummyManager()
- inst = self._makeOne(manager)
- self.assertRaises(KeyError, inst.__exit__, KeyError, KeyError(), None)
- self.assertFalse(manager.committed)
- self.assertTrue(manager.aborted)
-
-class DummyManager(object):
- entered = False
- committed = False
- aborted = False
-
- def __init__(self, raise_on_commit=None, raise_on_abort=None):
- self.raise_on_commit = raise_on_commit
- self.raise_on_abort = raise_on_abort
-
- def _retryable(self, t, v):
- from transaction._manager import TransientError
- return issubclass(t, TransientError)
-
- def __enter__(self):
- self.entered = True
-
- def abort(self):
- self.aborted = True
- if self.raise_on_abort:
- raise self.raise_on_abort
-
- def commit(self):
- self.committed = True
- if self.raise_on_commit:
- raise self.raise_on_commit
More information about the checkins
mailing list