[Checkins] SVN: GenericSetup/branches/1.2/ Merge -r71274 from trunk into 1.2 branch, so that the toolset registry is only updated on toolset step import.

Alec Mitchell apm13 at columbia.edu
Wed Nov 22 13:00:35 EST 2006


Log message for revision 71275:
  Merge -r71274 from trunk into 1.2 branch, so that the toolset registry is only updated on toolset step import.
  

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

-=-
Modified: GenericSetup/branches/1.2/CHANGES.txt
===================================================================
--- GenericSetup/branches/1.2/CHANGES.txt	2006-11-22 17:56:07 UTC (rev 71274)
+++ GenericSetup/branches/1.2/CHANGES.txt	2006-11-22 18:00:34 UTC (rev 71275)
@@ -1,5 +1,9 @@
 GenericSetup Product Changelog
 
+    - 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.
+
   GenericSetup 1.2-beta (2006/09/20)
 
     - tool:  Added support for uploading a tarball on the "Import" tab

Modified: GenericSetup/branches/1.2/tests/test_tool.py
===================================================================
--- GenericSetup/branches/1.2/tests/test_tool.py	2006-11-22 17:56:07 UTC (rev 71274)
+++ GenericSetup/branches/1.2/tests/test_tool.py	2006-11-22 18:00:34 UTC (rev 71275)
@@ -191,17 +191,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()
@@ -611,6 +600,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' )
@@ -632,18 +622,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>
@@ -789,6 +768,40 @@
 
 class Test_importToolset( _ToolsetSetup ):
 
+    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/branches/1.2/tool.py
===================================================================
--- GenericSetup/branches/1.2/tool.py	2006-11-22 17:56:07 UTC (rev 71274)
+++ GenericSetup/branches/1.2/tool.py	2006-11-22 18:00:34 UTC (rev 71275)
@@ -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