[Zope-Checkins] [Checkins] SVN: Zope/branches/2.11/lib/python/Zope2/App/ Backported DoomedTransaction handling from trunk r92792 to 2.11 branch
Sidnei da Silva
sidnei at enfoldsystems.com
Wed Nov 5 08:12:10 EST 2008
Hi Matthew,
I think you merged a little bit too much here. You picked the previous
revision of startup.py by accident.
On Wed, Nov 5, 2008 at 11:08 AM, Matthew Wilkes
<matthew at matthewwilkes.co.uk> wrote:
> Log message for revision 92793:
> Backported DoomedTransaction handling from trunk r92792 to 2.11 branch
>
> Changed:
> U Zope/branches/2.11/lib/python/Zope2/App/startup.py
> A Zope/branches/2.11/lib/python/Zope2/App/tests/testDoomedTransaction.py
>
> -=-
> Modified: Zope/branches/2.11/lib/python/Zope2/App/startup.py
> ===================================================================
> --- Zope/branches/2.11/lib/python/Zope2/App/startup.py 2008-11-05 12:41:21 UTC (rev 92792)
> +++ Zope/branches/2.11/lib/python/Zope2/App/startup.py 2008-11-05 13:08:33 UTC (rev 92793)
> @@ -249,7 +249,15 @@
> REQUEST['AUTHENTICATED_USER'] = AccessControl.User.nobody
>
> try:
> - f(client, REQUEST, t, v, traceback, error_log_url=error_log_url)
> + result = f(client, REQUEST, t, v,
> + traceback,
> + error_log_url=error_log_url)
> + if result is not None:
> + t, v, traceback = result
> + response = REQUEST.RESPONSE
> + response.setStatus(t)
> + response.setBody(v)
> + return response
> except TypeError:
> # Pre 2.6 call signature
> f(client, REQUEST, t, v, traceback)
> @@ -267,7 +275,10 @@
> transaction.begin()
>
> def commit(self):
> - transaction.commit()
> + if hasattr(transaction, 'isDoomed') and transaction.isDoomed():
> + transaction.abort()
> + else:
> + transaction.commit()
>
> def abort(self):
> transaction.abort()
>
> Copied: Zope/branches/2.11/lib/python/Zope2/App/tests/testDoomedTransaction.py (from rev 92792, Zope/trunk/lib/python/Zope2/App/tests/testDoomedTransaction.py)
> ===================================================================
> --- Zope/branches/2.11/lib/python/Zope2/App/tests/testDoomedTransaction.py (rev 0)
> +++ Zope/branches/2.11/lib/python/Zope2/App/tests/testDoomedTransaction.py 2008-11-05 13:08:33 UTC (rev 92793)
> @@ -0,0 +1,43 @@
> +##############################################################################
> +#
> +# Copyright (c) 2007 Zope Corporation 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 sys
> +import unittest
> +import logging
> +import transaction
> +
> +class DoomedTransactionInManagerTest(unittest.TestCase):
> +
> + def testDoomedFails(self):
> + transaction.begin()
> + trans = transaction.get()
> + trans.doom()
> + from transaction.interfaces import DoomedTransaction
> + self.assertRaises(DoomedTransaction, trans.commit)
> +
> + def testDoomedSilentInTM(self):
> + from Zope2.App.startup import TransactionsManager
> + tm = TransactionsManager()
> + transaction.begin()
> + trans = transaction.get()
> + trans.doom()
> + tm.commit()
> +
> +def test_suite():
> + suite = unittest.TestSuite()
> + suite.addTest(unittest.makeSuite(DoomedTransactionInManagerTest))
> + return suite
> +
> +if __name__ == '__main__':
> + unittest.main(defaultTest='test_suite')
>
> _______________________________________________
> Checkins mailing list
> Checkins at zope.org
> http://mail.zope.org/mailman/listinfo/checkins
>
--
Sidnei da Silva
Enfold Systems
http://enfoldsystems.com
Fax +1 832 201 8856
Office +1 713 942 2377 Ext 214
Skype zopedc
More information about the Zope-Checkins
mailing list