[Checkins] SVN: transaction/branches/sphinx/ Coverage for Transaction.register.
Tres Seaver
cvs-admin at zope.org
Tue Dec 18 00:16:07 UTC 2012
Log message for revision 128739:
Coverage for Transaction.register.
Changed:
_U transaction/branches/sphinx/
U transaction/branches/sphinx/transaction/_transaction.py
U transaction/branches/sphinx/transaction/tests/test__transaction.py
-=-
Modified: transaction/branches/sphinx/transaction/_transaction.py
===================================================================
--- transaction/branches/sphinx/transaction/_transaction.py 2012-12-17 23:58:00 UTC (rev 128738)
+++ transaction/branches/sphinx/transaction/_transaction.py 2012-12-18 00:16:07 UTC (rev 128739)
@@ -234,7 +234,6 @@
# be stored when the transaction commits. For other
# objects, the object implements the standard two-phase
# commit protocol.
-
manager = getattr(obj, "_p_jar", obj)
if manager is None:
raise ValueError("Register with no manager")
Modified: transaction/branches/sphinx/transaction/tests/test__transaction.py
===================================================================
--- transaction/branches/sphinx/transaction/tests/test__transaction.py 2012-12-17 23:58:00 UTC (rev 128738)
+++ transaction/branches/sphinx/transaction/tests/test__transaction.py 2012-12-18 00:16:07 UTC (rev 128739)
@@ -290,6 +290,46 @@
t._invalidate_all_savepoints()
self.assertEqual(list(t._savepoint2index), [])
+ def test_register_wo_jar(self):
+ class _Dummy(object):
+ _p_jar = None
+ t = self._makeOne()
+ self.assertRaises(ValueError, t.register, _Dummy())
+
+ def test_register_w_jar(self):
+ class _Manager(object):
+ pass
+ mgr = _Manager()
+ class _Dummy(object):
+ _p_jar = mgr
+ t = self._makeOne()
+ dummy = _Dummy()
+ t.register(dummy)
+ resources = list(t._resources)
+ self.assertEqual(len(resources), 1)
+ adapter = resources[0]
+ self.assertTrue(adapter.manager is mgr)
+ self.assertTrue(dummy in adapter.objects)
+ items = list(t._adapters.items())
+ self.assertEqual(len(items), 1)
+ self.assertTrue(items[0][0] is mgr)
+ self.assertTrue(items[0][1] is adapter)
+
+ def test_register_w_jar_already_adapted(self):
+ class _Adapter(object):
+ def __init__(self):
+ self.objects = []
+ class _Manager(object):
+ pass
+ mgr = _Manager()
+ class _Dummy(object):
+ _p_jar = mgr
+ t = self._makeOne()
+ t._adapters[mgr] = adapter = _Adapter()
+ dummy = _Dummy()
+ t.register(dummy)
+ self.assertTrue(dummy in adapter.objects)
+
def test_note(self):
t = self._makeOne()
try:
More information about the checkins
mailing list