[Checkins] SVN: Products.GenericSetup/trunk/Products/GenericSetup/ Merge wichert-sane-contextid branch

Wichert Akkerman wichert at wiggy.net
Mon Nov 19 17:35:32 EST 2007


Log message for revision 81937:
  Merge wichert-sane-contextid branch

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

-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt	2007-11-19 21:44:20 UTC (rev 81936)
+++ Products.GenericSetup/trunk/Products/GenericSetup/CHANGES.txt	2007-11-19 22:35:31 UTC (rev 81937)
@@ -2,6 +2,8 @@
 
   GenericSetup 1.4 (unreleased)
   
+    - Be more careful in checking context id validity.
+
     - Fire events before and after importing.
 
     - Use zcml to register import and export steps.

Modified: Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2007-11-19 21:44:20 UTC (rev 81936)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2007-11-19 22:35:31 UTC (rev 81937)
@@ -141,6 +141,15 @@
                          , 'profile-foo'
                          )
 
+    def test_setBaselineContext_empty_string( self ):
+
+        tool = self._makeOne('setup_tool')
+
+        self.assertRaises( KeyError
+                         , tool.setBaselineContext
+                         , ''
+                         )
+
     def test_setBaselineContext( self ):
 
         from Products.GenericSetup.tool import IMPORT_STEPS_XML
@@ -194,7 +203,7 @@
 
         tool = self._makeOne('setup_tool').__of__( site )
 
-        self.assertRaises( ValueError, tool.runImportStepFromProfile,
+        self.assertRaises( KeyError, tool.runImportStepFromProfile,
                            '', 'nonesuch' )
 
     def test_runImportStep_simple( self ):
@@ -207,7 +216,7 @@
         registry = tool.getImportStepRegistry()
         registry.registerStep( 'simple', '1', _uppercaseSiteTitle )
 
-        result = tool.runImportStepFromProfile( '', 'simple' )
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'simple' )
 
         self.assertEqual( len( result[ 'steps' ] ), 1 )
 
@@ -219,13 +228,13 @@
 
         global _before_import_events
         self.assertEqual( len(_before_import_events), 1)
-        self.assertEqual(_before_import_events[0].profile_id, '')
+        self.assertEqual(_before_import_events[0].profile_id, 'snapshot-dummy')
         self.assertEqual(_before_import_events[0].steps, ['simple'])
         self.assertEqual(_before_import_events[0].full_import, True)
 
         global _after_import_events
         self.assertEqual( len(_after_import_events), 1)
-        self.assertEqual(_after_import_events[0].profile_id, '')
+        self.assertEqual(_after_import_events[0].profile_id, 'snapshot-dummy')
         self.assertEqual(_after_import_events[0].steps, ['simple'])
         self.assertEqual(_after_import_events[0].full_import, True)
 
@@ -241,7 +250,7 @@
         registry.registerStep( 'dependent', '1'
                              , _uppercaseSiteTitle, ( 'dependable', ) )
 
-        result = tool.runImportStepFromProfile( '', 'dependent' )
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'dependent' )
 
         self.assertEqual( len( result[ 'steps' ] ), 2 )
 
@@ -256,13 +265,13 @@
 
         global _before_import_events
         self.assertEqual( len(_before_import_events), 1)
-        self.assertEqual(_before_import_events[0].profile_id, '')
+        self.assertEqual(_before_import_events[0].profile_id, 'snapshot-dummy')
         self.assertEqual(_before_import_events[0].steps, ['dependable', 'dependent'])
         self.assertEqual(_before_import_events[0].full_import, True)
 
         global _after_import_events
         self.assertEqual( len(_after_import_events), 1)
-        self.assertEqual(_after_import_events[0].profile_id, '')
+        self.assertEqual(_after_import_events[0].profile_id, 'snapshot-dummy')
         self.assertEqual(_after_import_events[0].steps, ['dependable', 'dependent'])
         self.assertEqual(_after_import_events[0].full_import, True)
 
@@ -279,7 +288,7 @@
         registry.registerStep( 'dependent', '1'
                              , _uppercaseSiteTitle, ( 'dependable', ) )
 
-        result = tool.runImportStepFromProfile( '', 'dependent',
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'dependent',
                                                 run_dependencies=False )
 
         self.assertEqual( len( result[ 'steps' ] ), 1 )
@@ -292,13 +301,13 @@
 
         global _before_import_events
         self.assertEqual( len(_before_import_events), 1)
-        self.assertEqual(_before_import_events[0].profile_id, '')
+        self.assertEqual(_before_import_events[0].profile_id, 'snapshot-dummy')
         self.assertEqual(_before_import_events[0].steps, ['dependent'])
         self.assertEqual(_before_import_events[0].full_import, False)
 
         global _after_import_events
         self.assertEqual( len(_after_import_events), 1)
-        self.assertEqual(_after_import_events[0].profile_id, '')
+        self.assertEqual(_after_import_events[0].profile_id, 'snapshot-dummy')
         self.assertEqual(_after_import_events[0].steps, ['dependent'])
         self.assertEqual(_after_import_events[0].full_import, False)
 
@@ -310,7 +319,7 @@
         registry = tool.getImportStepRegistry()
         registry.registerStep( 'purging', '1', _purgeIfRequired )
 
-        result = tool.runImportStepFromProfile( '', 'purging' )
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'purging' )
 
         self.assertEqual( len( result[ 'steps' ] ), 1 )
         self.assertEqual( result[ 'steps' ][ 0 ], 'purging' )
@@ -325,7 +334,7 @@
         registry = tool.getImportStepRegistry()
         registry.registerStep( 'purging', '1', _purgeIfRequired )
 
-        result = tool.runImportStepFromProfile( '', 'purging',
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'purging',
                                                 purge_old=True )
 
         self.assertEqual( len( result[ 'steps' ] ), 1 )
@@ -341,7 +350,7 @@
         registry = tool.getImportStepRegistry()
         registry.registerStep( 'purging', '1', _purgeIfRequired )
 
-        result = tool.runImportStepFromProfile( '', 'purging',
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'purging',
                                                 purge_old=False )
 
         self.assertEqual( len( result[ 'steps' ] ), 1 )
@@ -360,7 +369,7 @@
         registry.registerStep( 'dependent', '1'
                              , _uppercaseSiteTitle, ( 'purging', ) )
 
-        result = tool.runImportStepFromProfile( '', 'dependent',
+        result = tool.runImportStepFromProfile( 'snapshot-dummy', 'dependent',
                                                 purge_old=False )
         self.failIf( site.purged )
 
@@ -369,14 +378,14 @@
         site = self._makeSite()
         tool = self._makeOne('setup_tool').__of__( site )
 
-        result = tool.runAllImportStepsFromProfile('')
+        result = tool.runAllImportStepsFromProfile('snapshot-dummy')
 
         self.assertEqual( len( result[ 'steps' ] ), 0 )
 
     def test_runAllImportSteps_sorted_default_purge( self ):
 
         TITLE = 'original title'
-        PROFILE_ID = 'testing'
+        PROFILE_ID = 'snapshot-testing'
         site = self._makeSite( TITLE )
         tool = self._makeOne('setup_tool').__of__( site )
 
@@ -414,7 +423,7 @@
     def test_runAllImportSteps_unicode_profile_id_creates_reports( self ):
 
         TITLE = 'original title'
-        PROFILE_ID = u'testing'
+        PROFILE_ID = u'snapshot-testing'
         site = self._makeSite( TITLE )
         tool = self._makeOne('setup_tool').__of__( site )
 
@@ -445,7 +454,7 @@
         registry.registerStep( 'purging', '1'
                              , _purgeIfRequired )
 
-        result = tool.runAllImportStepsFromProfile( '', purge_old=True )
+        result = tool.runAllImportStepsFromProfile( 'snapshot-dummy', purge_old=True )
 
         self.assertEqual( len( result[ 'steps' ] ), 3 )
 
@@ -470,7 +479,7 @@
         registry.registerStep( 'purging', '1'
                              , _purgeIfRequired )
 
-        result = tool.runAllImportStepsFromProfile( '', purge_old=False )
+        result = tool.runAllImportStepsFromProfile( 'snapshot-dummy', purge_old=False )
 
         self.assertEqual( len( result[ 'steps' ] ), 3 )
 

Modified: Products.GenericSetup/trunk/Products/GenericSetup/tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2007-11-19 21:44:20 UTC (rev 81936)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2007-11-19 22:35:31 UTC (rev 81937)
@@ -954,11 +954,13 @@
                 should_purge = (info.get('type') != EXTENSION)
             return DirectoryImportContext(self, path, should_purge, encoding)
 
-        # else snapshot
-        context_id = context_id[len('snapshot-'):]
-        if should_purge is None:
-            should_purge = True
-        return SnapshotImportContext(self, context_id, should_purge, encoding)
+        elif context_id.startswith('snapshot-'):
+            context_id = context_id[len('snapshot-'):]
+            if should_purge is None:
+                should_purge = True
+            return SnapshotImportContext(self, context_id, should_purge, encoding)
+        else:
+            raise KeyError, 'Unknown context %s' % context_id
 
     security.declarePrivate('_updateImportStepsRegistry')
     def _updateImportStepsRegistry(self, context, encoding):



More information about the Checkins mailing list