[Checkins] SVN: Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/ first upgradeDepends unit test and fixes for the 2 bugs it exposed :)

Rob Miller ra at burningman.com
Wed Aug 6 20:12:43 EDT 2008


Log message for revision 89477:
  first upgradeDepends unit test and fixes for the 2 bugs it exposed :)
  

Changed:
  U   Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/tests/test_zcml.py
  U   Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/upgrade.py
  U   Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/zcml.py

-=-
Modified: Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/tests/test_zcml.py
===================================================================
--- Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/tests/test_zcml.py	2008-08-07 00:01:35 UTC (rev 89476)
+++ Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/tests/test_zcml.py	2008-08-07 00:12:42 UTC (rev 89477)
@@ -145,7 +145,7 @@
 
 def test_registerUpgradeStep(self):
     """
-    Use the genericsetup:upgradeStep directive::
+    Use the standalone genericsetup:upgradeStep directive::
 
       >>> import Products.GenericSetup
       >>> from Products.Five import zcml
@@ -187,7 +187,49 @@
       >>> cleanUp()
     """
 
+def test_registerUpgradeDepends(self):
+    """
+    Use the standalone genericsetup:upgradeDepends directive::
 
+      >>> import Products.GenericSetup
+      >>> from Products.Five import zcml
+      >>> configure_zcml = '''
+      ... <configure
+      ...     xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+      ...     i18n_domain="foo">
+      ...   <genericsetup:upgradeDepends
+      ...       title="Upgrade Foo Product"
+      ...       description="Upgrades Foo from 1.0 to 1.1."
+      ...       source="1.0"
+      ...       destination="1.1"
+      ...       sortkey="1"
+      ...       profile="default"
+      ...       />
+      ... </configure>'''
+      >>> zcml.load_config('meta.zcml', Products.GenericSetup)
+      >>> zcml.load_string(configure_zcml)
+
+    Make sure the upgrade step is registered correctly::
+
+      >>> from Products.GenericSetup.upgrade import _upgrade_registry
+      >>> profile_steps = _upgrade_registry.getUpgradeStepsForProfile('default')
+      >>> keys = profile_steps.keys()
+      >>> len(keys)
+      1
+      >>> step = profile_steps[keys[0]]
+      >>> step.source
+      ('1', '0')
+      >>> step.dest
+      ('1', '1')
+      >>> step.steps
+      []
+
+    Clean up and make sure the cleanup works::
+
+      >>> from zope.testing.cleanup import cleanUp
+      >>> cleanUp()
+    """
+
 def test_registerUpgradeSteps(self):
     """
     Use the nested genericsetup:upgradeSteps directive::

Modified: Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/upgrade.py
===================================================================
--- Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/upgrade.py	2008-08-07 00:01:35 UTC (rev 89476)
+++ Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/upgrade.py	2008-08-07 00:12:42 UTC (rev 89477)
@@ -145,7 +145,7 @@
     """
     def __init__(self, title, profile, source, dest, desc, steps=[],
                  run_deps=False, purge=False, checker=None, sortkey=0):
-        super(UpgradeStep, self).__init__(title, profile, source, dest,
+        super(UpgradeDepends, self).__init__(title, profile, source, dest,
                                           desc, checker, sortkey)
         self.steps = steps
         self.run_deps = run_deps

Modified: Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/zcml.py
===================================================================
--- Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/zcml.py	2008-08-07 00:01:35 UTC (rev 89476)
+++ Products.GenericSetup/branches/ra-depends-tag/Products/GenericSetup/zcml.py	2008-08-07 00:12:42 UTC (rev 89477)
@@ -300,7 +300,7 @@
     step = UpgradeDepends(title, profile, source, destination, description,
                           import_steps, run_deps, purge, checker, sortkey)
     _context.action(
-        discriminator = ('upgradeDepends', source, destination, import_steps,
+        discriminator = ('upgradeDepends', source, destination, str(import_steps),
                          checker, sortkey),
         callable = _registerUpgradeStep,
         args = (step,),
@@ -344,7 +344,7 @@
                                                  self.sortkey))))
         _context.action(
             discriminator = ('upgradeDepends', self.source, self.dest,
-                             import_steps, self.sortkey),
+                             str(import_steps), self.sortkey),
             callable = _registerNestedUpgradeStep,
             args = (step, self.id)
             )



More information about the Checkins mailing list