[Checkins] SVN: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/ - added functional upgrade tests
Yvo Schubbe
y.2009 at wcm-solutions.de
Sun Dec 13 07:05:59 EST 2009
Log message for revision 106442:
- added functional upgrade tests
Changed:
A Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/
A Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/__init__.py
A Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/cmf20Site.zexp
A Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/cmf21Site.zexp
A Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/test_upgrade.py
-=-
Added: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/__init__.py
===================================================================
--- Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/__init__.py (rev 0)
+++ Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/__init__.py 2009-12-13 12:05:59 UTC (rev 106442)
@@ -0,0 +1,16 @@
+##############################################################################
+#
+# Copyright (c) 2009 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.
+#
+##############################################################################
+"""CMFDefault upgrade unit tests.
+
+$Id$
+"""
Property changes on: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/__init__.py
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/cmf20Site.zexp
===================================================================
(Binary files differ)
Property changes on: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/cmf20Site.zexp
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/cmf21Site.zexp
===================================================================
(Binary files differ)
Property changes on: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/cmf21Site.zexp
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/test_upgrade.py
===================================================================
--- Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/test_upgrade.py (rev 0)
+++ Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/test_upgrade.py 2009-12-13 12:05:59 UTC (rev 106442)
@@ -0,0 +1,105 @@
+##############################################################################
+#
+# Copyright (c) 2009 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.
+#
+##############################################################################
+"""Upgrade tests.
+
+$Id$
+"""
+
+import unittest
+from Testing import ZopeTestCase
+
+import transaction
+from os.path import abspath
+from os.path import dirname
+from os.path import join as path_join
+
+from AccessControl.SecurityManagement import newSecurityManager
+from AccessControl.User import UnrestrictedUser
+from Products.CMFCore.tests.base.testcase import WarningInterceptor
+from Products.CMFDefault.testing import FunctionalLayer
+from Products.GenericSetup.context import TarballImportContext
+from zope.site.hooks import setSite
+
+here = abspath(dirname(__file__))
+
+
+class FunctionalUpgradeTestCase(ZopeTestCase.FunctionalTestCase,
+ WarningInterceptor):
+
+ layer = FunctionalLayer
+ _setup_fixture = 0
+
+ def afterSetUp(self):
+ zexp_path = path_join(here, '%s.zexp' % self._SITE_ID)
+ self._trap_warning_output()
+ self.app._importObjectFromFile(zexp_path, verify=0)
+ self._free_warning_output()
+ transaction.commit()
+
+ def beforeTearDown(self):
+ self.app._delObject(self._SITE_ID)
+ transaction.commit()
+
+ def testUpgradeAllProposed(self):
+ request = self.app.REQUEST
+ oldsite = getattr(self.app, self._SITE_ID)
+ stool = oldsite.portal_setup
+ profile_id = 'Products.CMFDefault:default'
+ upgrades = []
+ for upgrade_info in stool.listUpgrades(profile_id):
+ if isinstance(upgrade_info, list):
+ for info in upgrade_info:
+ if info['proposed']:
+ upgrades.append(info['id'])
+ continue
+ if upgrade_info['proposed']:
+ upgrades.append(upgrade_info['id'])
+
+ request.form['profile_id'] = profile_id
+ request.form['upgrades'] = upgrades
+ stool.manage_doUpgrades(request)
+
+ self.assertEqual(stool.getLastVersionForProfile(profile_id),
+ ('2', '2'))
+
+ newSecurityManager(None, UnrestrictedUser('god', '', ['Manager'], ''))
+ setSite(self.app.site)
+ expected_export = self.app.site.portal_setup.runAllExportSteps()
+ setSite(oldsite)
+ upgraded_export = stool.runAllExportSteps()
+
+ expected = TarballImportContext(stool, expected_export['tarball'])
+ upgraded = TarballImportContext(stool, upgraded_export['tarball'])
+ diff = stool.compareConfigurations(upgraded, expected)
+ self.assertEqual(diff, '', diff)
+
+
+class UpgradeFrom20Tests(FunctionalUpgradeTestCase):
+
+ _SITE_ID = 'cmf20Site'
+
+
+class UpgradeFrom21Tests(FunctionalUpgradeTestCase):
+
+ _SITE_ID = 'cmf21Site'
+
+
+def test_suite():
+ return unittest.TestSuite((
+ # XXX: this test fails and depends on a five.localsitemanager patch
+ #unittest.makeSuite(UpgradeFrom20Tests),
+ unittest.makeSuite(UpgradeFrom21Tests),
+ ))
+
+if __name__ == '__main__':
+ unittest.main(defaultTest='test_suite')
Property changes on: Products.CMFDefault/branches/2.2/Products/CMFDefault/upgrade/tests/test_upgrade.py
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
More information about the checkins
mailing list