[Checkins] SVN: Products.GenericSetup/trunk/ Forward port fix for LP #553338 from 1.4 branch.

Tres Seaver tseaver at palladion.com
Thu Apr 1 15:42:36 EDT 2010


Log message for revision 110436:
  Forward port fix for LP #553338 from 1.4 branch.

Changed:
  U   Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py
  U   Products.GenericSetup/trunk/Products/GenericSetup/tool.py
  U   Products.GenericSetup/trunk/docs/CHANGES.rst

-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2010-04-01 19:37:16 UTC (rev 110435)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2010-04-01 19:42:36 UTC (rev 110436)
@@ -968,6 +968,35 @@
         (profile_registry._profile_info,
          profile_registry._profile_ids) = orig_profile_reg
 
+    def test_manage_doUpgrades_no_profile_id_or_updates(self):
+        site = self._makeSite()
+        site.setup_tool = self._makeOne('setup_tool')
+        tool = site.setup_tool
+        request = site.REQUEST
+        tool.manage_doUpgrades()
+        self.assertEqual(tool._profile_upgrade_versions, {})
+
+    def test_manage_doUpgrades_upgrade_w_no_target_version(self):
+        from Products.GenericSetup.upgrade import UpgradeStep
+        from Products.GenericSetup.upgrade import _registerUpgradeStep
+        from Products.GenericSetup.upgrade import _upgrade_registry
+        old = dict(_upgrade_registry._registry)
+        try:
+            step = UpgradeStep('TITLE', 'foo', '*', '*', 'DESC',
+                                lambda tool: None)
+            _registerUpgradeStep(step)
+            site = self._makeSite()
+            site.setup_tool = self._makeOne('setup_tool')
+            tool = site.setup_tool
+            request = site.REQUEST
+            request['profile_id'] = ['foo']
+            request['upgrade'] = [step.id]
+            tool.manage_doUpgrades()
+            self.assertEqual(tool._profile_upgrade_versions, {})
+        finally:
+            _upgrade_registry._registry.clear()
+            _upgrade_registry._registry.update(old)
+
     def test_listExportSteps(self):
         site = self._makeSite()
         site.setup_tool = self._makeOne('setup_tool')

Modified: Products.GenericSetup/trunk/Products/GenericSetup/tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2010-04-01 19:37:16 UTC (rev 110435)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2010-04-01 19:42:36 UTC (rev 110436)
@@ -873,6 +873,7 @@
         logger = logging.getLogger('GenericSetup')
         steps_to_run = request.form.get('upgrades', [])
         profile_id = request.get('profile_id', '')
+        step = None
         for step_id in steps_to_run:
             step = _upgrade_registry.getUpgradeStep(profile_id, step_id)
             if step is not None:
@@ -883,7 +884,7 @@
 
         # We update the profile version to the last one we have reached
         # with running an upgrade step.
-        if step.dest is not None and step.checker is None:
+        if step and step.dest is not None and step.checker is None:
             self.setLastVersionForProfile(profile_id, step.dest)
 
         url = self.absolute_url()

Modified: Products.GenericSetup/trunk/docs/CHANGES.rst
===================================================================
--- Products.GenericSetup/trunk/docs/CHANGES.rst	2010-04-01 19:37:16 UTC (rev 110435)
+++ Products.GenericSetup/trunk/docs/CHANGES.rst	2010-04-01 19:42:36 UTC (rev 110436)
@@ -4,8 +4,11 @@
 1.6.1 (unreleased)
 ------------------
 
-- TBD
+- Fixed bug which broke the took upgrade tab after running an upgrade step
+  which used ``None`` as its destintaion version. 
+  https://bugs.launchpad.net/bugs/553338
 
+
 1.6.0 (2010-03-08)
 ------------------
 



More information about the checkins mailing list