Log message for revision 39719: Add one test and expand another for database mounting. Make sure that savepoint creation is optimistic.
Changed: U Zope/trunk/lib/python/Products/ZODBMountPoint/MountedObject.py U Zope/trunk/lib/python/Products/ZODBMountPoint/tests/testMountPoint.py -=- Modified: Zope/trunk/lib/python/Products/ZODBMountPoint/MountedObject.py =================================================================== --- Zope/trunk/lib/python/Products/ZODBMountPoint/MountedObject.py 2005-10-29 13:02:57 UTC (rev 39718) +++ Zope/trunk/lib/python/Products/ZODBMountPoint/MountedObject.py 2005-10-29 20:35:51 UTC (rev 39719) @@ -82,7 +82,6 @@ container = self._construct(container, part) return container - class CustomTrailblazer (SimpleTrailblazer): """Like SimpleTrailblazer but creates custom objects. @@ -113,7 +112,7 @@ obj = context.unrestrictedTraverse(id) # Commit a subtransaction to assign the new object to # the correct database. - transaction.savepoint() + transaction.savepoint(optimistic=True) return obj @@ -123,7 +122,8 @@ ''' meta_type = 'ZODB Mount Point' _isMountedObject = 1 - # DM 2005-05-17: default value change necessary after fix of '_create_mount_point' handling + # DM 2005-05-17: default value change necessary after fix of + # '_create_mount_point' handling #_create_mount_points = 0 _create_mount_points = True @@ -193,7 +193,7 @@ obj = Application() root[real_root] = obj # Get it into the database - transaction.savepoint() + transaction.savepoint(optimistic=True) else: raise Modified: Zope/trunk/lib/python/Products/ZODBMountPoint/tests/testMountPoint.py =================================================================== --- Zope/trunk/lib/python/Products/ZODBMountPoint/tests/testMountPoint.py 2005-10-29 13:02:57 UTC (rev 39718) +++ Zope/trunk/lib/python/Products/ZODBMountPoint/tests/testMountPoint.py 2005-10-29 20:35:51 UTC (rev 39719) @@ -11,7 +11,7 @@ # FOR A PARTICULAR PURPOSE # ############################################################################## -"""Tests of DBTab and ZODBMountPoint +"""Tests of ZODBMountPoint """ import os @@ -23,7 +23,9 @@ from OFS.Application import Application from OFS.Folder import Folder import App.config -from Products.ZODBMountPoint.MountedObject import manage_addMounts, getMountPoint +from Products.ZODBMountPoint.MountedObject import manage_addMounts +from Products.ZODBMountPoint.MountedObject import getMountPoint +from Products.ZODBMountPoint.MountedObject import manage_getMountStatus from Zope2.Startup.datatypes import DBTab try: @@ -62,7 +64,7 @@ original_config = None -class DBTabTests (unittest.TestCase): +class MountingTests(unittest.TestCase): def setUp(self): global original_config @@ -88,7 +90,6 @@ App.config.setConfiguration(d) self.conf = conf db = conf.getDatabase('/') - self.db = db conn = db.open() root = conn.root() root['Application'] = app = Application() @@ -104,7 +105,6 @@ transaction.abort() self.app._p_jar.close() del self.app - del self.db for db in self.conf.databases.values(): db.close() del self.conf @@ -126,6 +126,10 @@ self.assertEqual(app.mount2._p_changed, 0) self.assertEqual(app._p_changed, 0) + self.assertEqual(app.mount1.a1, '1') + self.assertEqual(app.mount2.a2, '2') + self.assertEqual(app.a3, '3') + def testGetMountPoint(self): self.assert_(getMountPoint(self.app) is None) self.assert_(getMountPoint(self.app.mount1) is not None) @@ -139,8 +143,43 @@ transaction.commit() self.assert_(getMountPoint(self.app.mount2) is None) + def test_manage_getMountStatus(self): + status = manage_getMountStatus(self.app) + expected = [{'status': 'Ok', + 'path': '/mount1', + 'name': 'test_mount1.fs', + 'exists': 1}, + {'status': 'Ok', + 'path': '/mount2', + 'name': 'test_mount2.fs', + 'exists': 1}] + self.assertEqual(expected, status) + del self.app.mount2 + status = manage_getMountStatus(self.app) + expected = [{'status': 'Ok', + 'path': '/mount1', + 'name': 'test_mount1.fs', + 'exists': 1}, + {'status': 'Ready to create', + 'path': '/mount2', + 'name': 'test_mount2.fs', + 'exists': 0}] + self.assertEqual(expected, status) + self.app.mount2 = Folder('mount2') + status = manage_getMountStatus(self.app) + expected = [{'status': 'Ok', + 'path': '/mount1', + 'name': 'test_mount1.fs', + 'exists': 1}, + {'status': '** Something is in the way **', + 'path': '/mount2', + 'name': 'test_mount2.fs', + 'exists': 1}] + self.assertEqual(expected, status) + + def test_suite(): - return unittest.makeSuite(DBTabTests, 'test') + return unittest.makeSuite(MountingTests, 'test') if __name__ == '__main__': unittest.main() _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins