Commit 643b9893 authored by Tim Peters's avatar Tim Peters

Changes for ZODB 3.3:

1. a_Transaction_object.begin() is deprecated.  Don't use it.

2. Commit failure is "sticky" now:  the current transaction
   must be explicitly discarded (abort() or begin()) before
   a commit can succeed again.
parent 8aef2341
...@@ -18,6 +18,7 @@ $Id$ ...@@ -18,6 +18,7 @@ $Id$
import unittest import unittest
import ZODB import ZODB
import transaction
from Acquisition import Implicit from Acquisition import Implicit
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from Globals import InitializeClass from Globals import InitializeClass
...@@ -95,7 +96,7 @@ class TestBindings(unittest.TestCase): ...@@ -95,7 +96,7 @@ class TestBindings(unittest.TestCase):
def setUp(self): def setUp(self):
from Testing.ZODButil import makeDB from Testing.ZODButil import makeDB
get_transaction().begin() transaction.begin()
self.db = makeDB() self.db = makeDB()
self.connection = self.db.open() self.connection = self.db.open()
......
...@@ -20,6 +20,8 @@ import os, sys, base64, unittest ...@@ -20,6 +20,8 @@ import os, sys, base64, unittest
from Testing.makerequest import makerequest from Testing.makerequest import makerequest
import transaction
import Zope import Zope
Zope.startup() Zope.startup()
...@@ -33,7 +35,7 @@ from AccessControl.User import User ...@@ -33,7 +35,7 @@ from AccessControl.User import User
class UserFolderTests(unittest.TestCase): class UserFolderTests(unittest.TestCase):
def setUp(self): def setUp(self):
get_transaction().begin() transaction.begin()
self.app = makerequest(Zope.app()) self.app = makerequest(Zope.app())
try: try:
# Set up a user and role # Set up a user and role
......
...@@ -3,6 +3,7 @@ import cStringIO ...@@ -3,6 +3,7 @@ import cStringIO
from mimetools import Message from mimetools import Message
from multifile import MultiFile from multifile import MultiFile
import transaction
from AccessControl import SecurityManager from AccessControl import SecurityManager
from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.SecurityManagement import noSecurityManager from AccessControl.SecurityManagement import noSecurityManager
...@@ -90,7 +91,7 @@ class CopySupportTestBase(unittest.TestCase): ...@@ -90,7 +91,7 @@ class CopySupportTestBase(unittest.TestCase):
except: except:
self.connection.close() self.connection.close()
raise raise
get_transaction().begin() transaction.begin()
return self.app._getOb( 'folder1' ), self.app._getOb( 'folder2' ) return self.app._getOb( 'folder1' ), self.app._getOb( 'folder2' )
......
...@@ -12,6 +12,7 @@ from ZPublisher.HTTPResponse import HTTPResponse ...@@ -12,6 +12,7 @@ from ZPublisher.HTTPResponse import HTTPResponse
from App.Common import rfc1123_date from App.Common import rfc1123_date
from Testing.makerequest import makerequest from Testing.makerequest import makerequest
from zExceptions import Redirect from zExceptions import Redirect
import transaction
try: try:
here = os.path.dirname(os.path.abspath(__file__)) here = os.path.dirname(os.path.abspath(__file__))
...@@ -99,7 +100,7 @@ class FileTests(unittest.TestCase): ...@@ -99,7 +100,7 @@ class FileTests(unittest.TestCase):
except: except:
self.connection.close() self.connection.close()
raise raise
get_transaction().begin() transaction.begin()
self.file = getattr( self.app, 'file' ) self.file = getattr( self.app, 'file' )
def tearDown( self ): def tearDown( self ):
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
import os, sys, unittest import os, sys, unittest
import string, cStringIO, re import string, cStringIO, re
import ZODB, Acquisition import ZODB, Acquisition, transaction
from Acquisition import aq_base from Acquisition import aq_base
from OFS.Application import Application from OFS.Application import Application
from OFS.Folder import manage_addFolder from OFS.Folder import manage_addFolder
...@@ -141,7 +141,7 @@ class TestTraverse( unittest.TestCase ): ...@@ -141,7 +141,7 @@ class TestTraverse( unittest.TestCase ):
except: except:
self.connection.close() self.connection.close()
raise raise
get_transaction().begin() transaction.begin()
self.folder1 = getattr( self.app, 'folder1' ) self.folder1 = getattr( self.app, 'folder1' )
self.policy = UnitTestSecurityPolicy() self.policy = UnitTestSecurityPolicy()
......
...@@ -15,13 +15,15 @@ from Testing.makerequest import makerequest ...@@ -15,13 +15,15 @@ from Testing.makerequest import makerequest
import Zope import Zope
Zope.startup() Zope.startup()
import transaction
import unittest import unittest
class VHMRegressions(unittest.TestCase): class VHMRegressions(unittest.TestCase):
def setUp(self): def setUp(self):
get_transaction().begin() transaction.begin()
self.app = makerequest(Zope.app()) self.app = makerequest(Zope.app())
try: try:
self.app.manage_addProduct['SiteAccess'].manage_addVirtualHostMonster('VHM') self.app.manage_addProduct['SiteAccess'].manage_addVirtualHostMonster('VHM')
......
...@@ -10,6 +10,8 @@ from Testing.makerequest import makerequest ...@@ -10,6 +10,8 @@ from Testing.makerequest import makerequest
import Zope import Zope
Zope.startup() Zope.startup()
import transaction
import sys import sys
import unittest import unittest
...@@ -17,7 +19,7 @@ import unittest ...@@ -17,7 +19,7 @@ import unittest
class SiteErrorLogTests(unittest.TestCase): class SiteErrorLogTests(unittest.TestCase):
def setUp(self): def setUp(self):
get_transaction().begin() transaction.begin()
self.app = makerequest(Zope.app()) self.app = makerequest(Zope.app())
try: try:
self.app.manage_addDTMLMethod('doc', '') self.app.manage_addDTMLMethod('doc', '')
......
...@@ -13,8 +13,8 @@ class UncommittableJar: ...@@ -13,8 +13,8 @@ class UncommittableJar:
self.reason = reason self.reason = reason
self.time = time.time() self.time = time.time()
def sort_key(self): def sortKey(self):
return self.time() return str(id(self))
def tpc_begin(self, *arg, **kw): def tpc_begin(self, *arg, **kw):
pass pass
...@@ -25,6 +25,9 @@ class UncommittableJar: ...@@ -25,6 +25,9 @@ class UncommittableJar:
def tpc_vote(self, transaction): def tpc_vote(self, transaction):
raise PreventTransactionCommit(self.reason) raise PreventTransactionCommit(self.reason)
def abort(*args):
pass
class makeTransactionUncommittable: class makeTransactionUncommittable:
""" """
- register an uncommittable object with the provided transaction - register an uncommittable object with the provided transaction
......
...@@ -16,6 +16,7 @@ if __name__ == "__main__": ...@@ -16,6 +16,7 @@ if __name__ == "__main__":
sys.path.insert(0, '../../..') sys.path.insert(0, '../../..')
import ZODB import ZODB
import transaction
from unittest import TestCase, TestSuite, TextTestRunner, makeSuite from unittest import TestCase, TestSuite, TextTestRunner, makeSuite
from Products.Transience.TransactionHelper import PreventTransactionCommit, \ from Products.Transience.TransactionHelper import PreventTransactionCommit, \
makeTransactionUncommittable makeTransactionUncommittable
...@@ -30,6 +31,7 @@ class TestTransactionHelper(TestCase): ...@@ -30,6 +31,7 @@ class TestTransactionHelper(TestCase):
def testUncommittable(self): def testUncommittable(self):
makeTransactionUncommittable(self.t, "test") makeTransactionUncommittable(self.t, "test")
self.assertRaises(PreventTransactionCommit, get_transaction().commit) self.assertRaises(PreventTransactionCommit, get_transaction().commit)
transaction.abort()
def test_suite(): def test_suite():
suite = makeSuite(TestTransactionHelper, 'test') suite = makeSuite(TestTransactionHelper, 'test')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment