[Checkins] SVN: GenericSetup/trunk/ No longer read the toolset xml and update the toolset regustry on import context change. Doing this only during the toolset step import should be sufficient.

Alec Mitchell apm13 at columbia.edu
Wed Nov 22 12:56:08 EST 2006


Log message for revision 71274:
  No longer read the toolset xml and update the toolset regustry on import context change.  Doing this only during the toolset step import should be sufficient.
  

Changed:
  U   GenericSetup/trunk/CHANGES.txt
  U   GenericSetup/trunk/tests/test_tool.py
  U   GenericSetup/trunk/tool.py

-=-
Modified: GenericSetup/trunk/CHANGES.txt
===================================================================
--- GenericSetup/trunk/CHANGES.txt	2006-11-22 16:41:50 UTC (rev 71273)
+++ GenericSetup/trunk/CHANGES.txt	2006-11-22 17:56:07 UTC (rev 71274)
@@ -2,6 +2,10 @@
 
   GenericSetup 1.3-beta (unreleased)
 
+    - No longer read the toolset xml and update the toolset regustry on
+      import context change.  Doing this only during the toolset step import
+      should be sufficient.
+
     - testing: The test base classes no longer set up any ZCML.
       This change is not backwards compatible. If you are using these base
       classes for testing custom handlers, you have to add the necessary ZCML

Modified: GenericSetup/trunk/tests/test_tool.py
===================================================================
--- GenericSetup/trunk/tests/test_tool.py	2006-11-22 16:41:50 UTC (rev 71273)
+++ GenericSetup/trunk/tests/test_tool.py	2006-11-22 17:56:07 UTC (rev 71274)
@@ -158,17 +158,6 @@
 
         self.assertEqual( export_registry.getStep( 'one' ), ONE_FUNC )
 
-        toolset = tool.getToolsetRegistry()
-        self.assertEqual( len( toolset.listForbiddenTools() ), 1 )
-        self.failUnless( 'doomed' in toolset.listForbiddenTools() )
-        self.assertEqual( len( toolset.listRequiredTools() ), 2 )
-        self.failUnless( 'mandatory' in toolset.listRequiredTools() )
-        info = toolset.getRequiredToolInfo( 'mandatory' )
-        self.assertEqual( info[ 'class' ], 'path.to.one' )
-        self.failUnless( 'obligatory' in toolset.listRequiredTools() )
-        info = toolset.getRequiredToolInfo( 'obligatory' )
-        self.assertEqual( info[ 'class' ], 'path.to.another' )
-
     def test_runImportStep_nonesuch( self ):
 
         site = self._makeSite()
@@ -578,6 +567,7 @@
         self.assertEqual( len( import_registry.listSteps() ), 1 )
         self.failUnless( 'one' in import_registry.listSteps() )
         info = import_registry.getStepMetadata( 'one' )
+
         self.assertEqual( info[ 'id' ], 'one' )
         self.assertEqual( info[ 'title' ], 'One Step' )
         self.assertEqual( info[ 'version' ], '1' )
@@ -599,18 +589,7 @@
 
         self.assertEqual( export_registry.getStep( 'one' ), ONE_FUNC )
 
-        toolset = tool.getToolsetRegistry()
-        self.assertEqual( len( toolset.listForbiddenTools() ), 1 )
-        self.failUnless( 'doomed' in toolset.listForbiddenTools() )
-        self.assertEqual( len( toolset.listRequiredTools() ), 2 )
-        self.failUnless( 'mandatory' in toolset.listRequiredTools() )
-        info = toolset.getRequiredToolInfo( 'mandatory' )
-        self.assertEqual( info[ 'class' ], 'path.to.one' )
-        self.failUnless( 'obligatory' in toolset.listRequiredTools() )
-        info = toolset.getRequiredToolInfo( 'obligatory' )
-        self.assertEqual( info[ 'class' ], 'path.to.another' )
 
-
 _DEFAULT_STEP_REGISTRIES_EXPORT_XML = """\
 <?xml version="1.0"?>
 <export-steps>
@@ -761,6 +740,40 @@
 
     layer = ExportImportZCMLLayer
 
+    def test_import_updates_registry(self):
+        from Products.GenericSetup.tool import TOOLSET_XML
+        from Products.GenericSetup.tool import importToolset
+        from test_registry import _NORMAL_TOOLSET_XML
+
+        site = self._initSite()
+        context = DummyImportContext( site, tool=site.setup_tool )
+
+        # Import forbidden
+        context._files[ TOOLSET_XML ] = _FORBIDDEN_TOOLSET_XML
+        importToolset( context )
+
+        tool = context.getSetupTool()
+        toolset = tool.getToolsetRegistry()
+
+        self.assertEqual( len( toolset.listForbiddenTools() ), 3 )
+        self.failUnless( 'doomed' in toolset.listForbiddenTools() )
+        self.failUnless( 'damned' in toolset.listForbiddenTools() )
+        self.failUnless( 'blasted' in toolset.listForbiddenTools() )
+
+        # Import required
+        context._files[ TOOLSET_XML ] = _REQUIRED_TOOLSET_XML
+        importToolset( context )
+
+        self.assertEqual( len( toolset.listRequiredTools() ), 2 )
+        self.failUnless( 'mandatory' in toolset.listRequiredTools() )
+        info = toolset.getRequiredToolInfo( 'mandatory' )
+        self.assertEqual( info[ 'class' ],
+                          'Products.GenericSetup.tests.test_tool.DummyTool' )
+        self.failUnless( 'obligatory' in toolset.listRequiredTools() )
+        info = toolset.getRequiredToolInfo( 'obligatory' )
+        self.assertEqual( info[ 'class' ],
+                          'Products.GenericSetup.tests.test_tool.DummyTool' )
+
     def test_tool_ids( self ):
         # The tool import mechanism used to rely on the fact that all tools
         # have unique IDs set at the class level and that you can call their

Modified: GenericSetup/trunk/tool.py
===================================================================
--- GenericSetup/trunk/tool.py	2006-11-22 16:41:50 UTC (rev 71273)
+++ GenericSetup/trunk/tool.py	2006-11-22 17:56:07 UTC (rev 71274)
@@ -186,7 +186,6 @@
     def applyContext(self, context, encoding=None):
         self._updateImportStepsRegistry(context, encoding)
         self._updateExportStepsRegistry(context, encoding)
-        self._updateToolsetRegistry(context, encoding)
 
     security.declareProtected(ManagePortal, 'getImportStepRegistry')
     def getImportStepRegistry(self):
@@ -718,19 +717,6 @@
                                                description=description,
                                               )
 
-    security.declarePrivate('_updateToolsetRegistry')
-    def _updateToolsetRegistry(self, context, encoding):
-
-        """ Update our toolset registry from our profile.
-        """
-        if context is None:
-            context = self._getImportContext(self._import_context_id)
-        xml = context.readDataFile(TOOLSET_XML)
-        if xml is None:
-            return
-
-        self._toolset_registry.parseXML(xml, encoding)
-
     security.declarePrivate('_doRunImportStep')
     def _doRunImportStep(self, step_id, context):
 



More information about the Checkins mailing list