[Checkins] SVN: Products.GenericSetup/trunk/Products/GenericSetup/t - made sure getSortedImportSteps doesn't return duplicates

Yvo Schubbe y.2007- at wcm-solutions.de
Thu Dec 20 06:34:27 EST 2007


Log message for revision 82370:
  - made sure getSortedImportSteps doesn't return duplicates
  - replaced '_registered' usage by registry API methods
  - added tests for listExportSteps and getSortedImportSteps

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

-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2007-12-20 06:47:44 UTC (rev 82369)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2007-12-20 11:34:26 UTC (rev 82370)
@@ -891,6 +891,33 @@
         (profile_registry._profile_info,
          profile_registry._profile_ids) = orig_profile_reg
 
+    def test_listExportSteps(self):
+        site = self._makeSite()
+        site.setup_tool = self._makeOne('setup_tool')
+        tool = site.setup_tool
+        self.assertEqual(tool.listExportSteps(),
+                         (u'step_registries',))
+
+        tool._export_registry.registerStep(u'foo', handler='foo.export')
+        tool._export_registry.registerStep(u'toolset',
+                                           handler='toolset.export')
+        self.assertEqual(tool.listExportSteps(),
+                         (u'toolset', u'step_registries', u'foo'))
+
+    def test_getSortedImportSteps(self):
+        site = self._makeSite()
+        site.setup_tool = self._makeOne('setup_tool')
+        tool = site.setup_tool
+        self.assertEqual(tool.getSortedImportSteps(),
+                         ())
+
+        tool._import_registry.registerStep(u'foo', handler='foo.import')
+        tool._import_registry.registerStep(u'toolset',
+                                           handler='toolset.import')
+        self.assertEqual(tool.getSortedImportSteps(),
+                         (u'foo', u'toolset'))
+
+
 _DEFAULT_STEP_REGISTRIES_EXPORT_XML = """\
 <?xml version="1.0"?>
 <export-steps>

Modified: Products.GenericSetup/trunk/Products/GenericSetup/tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2007-12-20 06:47:44 UTC (rev 82369)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2007-12-20 11:34:26 UTC (rev 82370)
@@ -270,8 +270,8 @@
 
     security.declareProtected(ManagePortal, 'listExportSteps')
     def listExportSteps(self):
-        steps = _export_step_registry._registered.keys() + \
-                self._export_registry._registered.keys()
+        steps = _export_step_registry.listSteps() + \
+                self._export_registry.listSteps()
         return tuple(set(steps))
 
     security.declareProtected(ManagePortal, 'getImportStep')
@@ -284,9 +284,11 @@
 
     security.declareProtected(ManagePortal, 'getSortedImportSteps')
     def getSortedImportSteps(self):
-        steps = _import_step_registry._registered.values() + \
-                self._import_registry._registered.values()
-        return _computeTopologicalSort(steps)
+        steps = _import_step_registry.listSteps() + \
+                self._import_registry.listSteps()
+        step_infos = [ self.getImportStepMetadata(step)
+                       for step in set(steps) ]
+        return tuple(_computeTopologicalSort(step_infos))
 
     security.declareProtected(ManagePortal, 'getImportStepMetadata')
     def getImportStepMetadata(self, step, default=None):



More information about the Checkins mailing list