[Checkins] SVN: Products.GenericSetup/trunk/ - don't ignore errors in ImmutableId._setId()

Yvo Schubbe y.2010 at wcm-solutions.de
Wed Jul 28 03:29:44 EDT 2010


Log message for revision 115137:
  - don't ignore errors in ImmutableId._setId()

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-07-28 07:23:30 UTC (rev 115136)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tests/test_tool.py	2010-07-28 07:29:44 UTC (rev 115137)
@@ -1281,14 +1281,14 @@
         from Products.GenericSetup.tool import importToolset
 
         site = self._initSite()
-        context = DummyImportContext( site, tool=site.setup_tool )
-        context._files[ TOOLSET_XML ] = _WITH_ID_TOOLSET_XML
+        context = DummyImportContext(site, tool=site.setup_tool)
+        context._files[TOOLSET_XML] = _WITH_ID_TOOLSET_XML
 
-        importToolset( context )
+        importToolset(context)
 
-        for tool_id in ( 'mandatory', 'requires_id' ):
-            tool = getattr( site, tool_id )
-            self.assertEqual( tool.getId(), tool_id )
+        for tool_id in ('mandatory', 'requires_id', 'immutable_id'):
+            tool = getattr(site, tool_id)
+            self.assertEqual(tool.getId(), tool_id)
 
     def test_forbidden_tools( self ):
 
@@ -1450,21 +1450,32 @@
         self.assertEqual( len( site.objectIds() ), 2 )
 
 
-class DummyTool( Folder ):
+class DummyTool(Folder):
 
     pass
 
-class AnotherDummyTool( Folder ):
 
+class AnotherDummyTool(Folder):
+
     pass
 
-class DummyToolRequiresId( Folder ):
 
+class DummyToolRequiresId(Folder):
+
     def __init__(self, id):
         Folder.__init__(self)
         self._setId(id)
 
 
+class DummyToolImmutableId(Folder):
+
+    id = 'immutable_id'
+
+    def _setId(self, id):
+        if id != self.getId():
+            raise ValueError()
+
+
 _EMPTY_TOOLSET_XML = """\
 <?xml version="1.0"?>
 <tool-setup>
@@ -1510,6 +1521,9 @@
   <required
     tool_id="requires_id"
     class="Products.GenericSetup.tests.test_tool.DummyToolRequiresId" />
+  <required
+    tool_id="immutable_id"
+    class="Products.GenericSetup.tests.test_tool.DummyToolImmutableId" />
 </tool-setup>
 """
 

Modified: Products.GenericSetup/trunk/Products/GenericSetup/tool.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2010-07-28 07:23:30 UTC (rev 115136)
+++ Products.GenericSetup/trunk/Products/GenericSetup/tool.py	2010-07-28 07:29:44 UTC (rev 115137)
@@ -24,7 +24,6 @@
 from OFS.Folder import Folder
 from OFS.Image import File
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
-from ZODB.POSException import ConflictError
 from zope import event 
 from zope.interface import implements
 
@@ -122,14 +121,7 @@
             except TypeError:
                 new_tool = tool_class(tool_id)
             else:
-                try:
-                    new_tool._setId(tool_id)
-                except (ConflictError, KeyboardInterrupt):
-                    raise
-                except:
-                    # BBB: for Products.CMFCore < 2.2.3
-                    # XXX: ImmutableId raises result of calling MessageDialog
-                    pass
+                new_tool._setId(tool_id)
 
             site._setObject(tool_id, new_tool)
         else:

Modified: Products.GenericSetup/trunk/docs/CHANGES.rst
===================================================================
--- Products.GenericSetup/trunk/docs/CHANGES.rst	2010-07-28 07:23:30 UTC (rev 115136)
+++ Products.GenericSetup/trunk/docs/CHANGES.rst	2010-07-28 07:29:44 UTC (rev 115137)
@@ -4,7 +4,9 @@
 1.6.2 (unreleased)
 ------------------
 
+- Toolset import: Don't ignore errors in ImmutableId._setId().
 
+
 1.6.1 (2010-07-04)
 ------------------
 



More information about the checkins mailing list