[Checkins] SVN: GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py better coverage and better cleanup for profile version tests

Rob Miller ra at burningman.com
Tue Jun 19 05:02:57 EDT 2007


Log message for revision 76783:
  better coverage and better cleanup for profile version tests
  

Changed:
  U   GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py

-=-
Modified: GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py
===================================================================
--- GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py	2007-06-19 08:26:45 UTC (rev 76782)
+++ GenericSetup/branches/tseaver-bbq_sprint/tests/test_tool.py	2007-06-19 09:02:56 UTC (rev 76783)
@@ -14,6 +14,7 @@
 
 $Id$
 """
+import copy
 import os
 import unittest
 import Testing
@@ -28,7 +29,10 @@
 import Products.GenericSetup
 from Products.GenericSetup import profile_registry
 from Products.GenericSetup.upgrade import listUpgradeSteps
+from Products.GenericSetup.upgrade import UpgradeStep
+from Products.GenericSetup.upgrade import _registerUpgradeStep
 from Products.GenericSetup.testing import ExportImportZCMLLayer
+from Products.GenericSetup.tests.test_zcml import dummy_upgrade_handler
 
 from common import BaseRegistryTests
 from common import DummyExportContext
@@ -697,7 +701,7 @@
         self.assertEqual(tool.getProfileImportDate('foo:bar'),
                          '2007-03-15T12:34:56Z')
 
-    def test_lastVersionForProfile(self):
+    def test_profileVersioning(self):
         site = self._makeSite()
         site.setup_tool = self._makeOne('setup_tool')
         tool = site.setup_tool
@@ -705,18 +709,32 @@
         product_name = 'GenericSetup'
         directory = os.path.split(__file__)[0]
         path = os.path.join(directory, 'versioned_profile')
+
+        # register profile
+        orig_profile_reg = (profile_registry._profile_info.copy(),
+                            profile_registry._profile_ids[:])
         profile_registry.registerProfile(profile_id,
                                          'Dummy Profile',
                                          'This is a dummy profile',
                                          path,
                                          product=product_name)
-        zcml.load_config('meta.zcml', Products.GenericSetup)        
-        zcml.load_string(UPGRADE_ZCML)
-        
+
+        # register upgrade step
+        from Products.GenericSetup.upgrade import _upgrade_registry
+        orig_upgrade_registry = copy.copy(_upgrade_registry._registry)
+        step = UpgradeStep("Upgrade", "GenericSetup:dummy_profile", '*', '1.1', '',
+                           dummy_upgrade_handler,
+                           None, "1")
+        _registerUpgradeStep(step)
+
+        # test initial states
+        profile_id = ':'.join((product_name, profile_id))
+        self.assertEqual(tool.getVersionForProfile(profile_id), '1.1')
         self.assertEqual(tool.getLastVersionForProfile(profile_id),
                          'unknown')
+
+        # run upgrade steps
         request = site.REQUEST
-        profile_id = ':'.join((product_name, profile_id))
         request.form['profile_id'] = profile_id
         steps = listUpgradeSteps(tool, profile_id, '1.0')
         step_id = steps[0]['id']
@@ -725,6 +743,13 @@
         self.assertEqual(tool.getLastVersionForProfile(profile_id),
                          ('1', '1'))
 
+        # reset ugprade registry
+        _upgrade_registry._registry = orig_upgrade_registry
+
+        # reset profile registry
+        (profile_registry._profile_info,
+         profile_registry._profile_ids) = orig_profile_reg
+
 _DEFAULT_STEP_REGISTRIES_EXPORT_XML = """\
 <?xml version="1.0"?>
 <export-steps>
@@ -788,22 +813,7 @@
 Title=%s
 """
 
-UPGRADE_ZCML = '''
-<configure
-  xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
-  i18n_domain="foo">
-    <genericsetup:upgradeStep
-      title="Upgrade Foo Product"
-      description="Upgrades Foo from 1.0 to 1.1."
-      source="1.0"
-      destination="1.1"
-      handler="Products.GenericSetup.tests.test_zcml.dummy_upgrade_handler"
-      sortkey="1"
-      profile="GenericSetup:dummy_profile"
-    />
-</configure>'''
 
-
 def _underscoreSiteTitle( context ):
 
     site = context.getSite()



More information about the Checkins mailing list