Log message for revision 113597: make the result of Shared.DC.ZRDB.TM.TM.sortKey() adjustable
Changed: U Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/TM.py A Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/tests/testTM.py -=- Modified: Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/TM.py =================================================================== --- Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/TM.py 2010-06-18 00:08:58 UTC (rev 113596) +++ Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/TM.py 2010-06-18 00:17:09 UTC (rev 113597) @@ -26,7 +26,7 @@ needed at the start of a transaction. A subclass that uses locking during transaction commit must - defined a sortKey() method. + define a sortKey() method. """ _registered=None @@ -66,14 +66,19 @@ tpc_abort = abort + # Most DA's talking to RDBMS systems do not care about commit order, so + # return the constant 1 + _sort_key = 1 + def sortKey(self, *ignored): - """ The sortKey method is used for recent ZODB compatibility which - needs to have a known commit order for lock acquisition. Most - DA's talking to RDBMS systems do not care about commit order, so - return the constant 1 + """ The sortKey method is used by ZODB to have a known commit order for + lock acquisition. """ - return 1 + return self._sort_key + def setSortKey(self, sort_key): + self._sort_key = sort_key + class Surrogate: def __init__(self, db): Added: Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/tests/testTM.py =================================================================== --- Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/tests/testTM.py (rev 0) +++ Zope/branches/rochael-TM_sortKey/src/Shared/DC/ZRDB/tests/testTM.py 2010-06-18 00:17:09 UTC (rev 113597) @@ -0,0 +1,29 @@ +############################################################################## +# +# Copyright (c) 2009 Zope Foundation and Contributors. +# +# 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 +# +############################################################################## + +from unittest import TestCase, TestSuite, makeSuite +from Shared.DC.ZRDB.TM import TM + +class TestTM(TestCase): + + def test_sortKey(self): + tm = TM() + # the default Transaction Manager should have .sortKey() of 1 for + # backward compatibility + self.assertEquals(tm.sortKey(), 1) + # but the sortKey() should be adjustable + tm.setSortKey(()) + self.assertEquals(tm.sortKey(), ()) + +def test_suite(): + return TestSuite((makeSuite(TestTM),)) _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org https://mail.zope.org/mailman/listinfo/zope-checkins