[Checkins] SVN: Products.CMFCore/trunk/Products/CMFCore/ - refactored test users, tightening security for anonymous test user

Yvo Schubbe y.2010 at wcm-solutions.de
Sun Dec 26 06:07:52 EST 2010


Log message for revision 119121:
  - refactored test users, tightening security for anonymous test user
  - adjusted security tests

Changed:
  U   Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
  U   Products.CMFCore/trunk/Products/CMFCore/tests/base/dummy.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_ActionsTool.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py
  U   Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py

-=-
Modified: Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/CHANGES.txt	2010-12-26 11:07:52 UTC (rev 119121)
@@ -4,6 +4,8 @@
 2.3.0-alpha (unreleased)
 ------------------------
 
+- tests base: Tightened security for anonymous test user.
+
 - Load permissions.zcml from Products.Five in the test to fix tests
   with Zope 2.12.
 

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/base/dummy.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/base/dummy.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/base/dummy.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -26,15 +26,15 @@
 from zope.event import notify
 from zope.interface import implements
 
+from Products.CMFCore.ActionProviderBase import ActionProviderBase
 from Products.CMFCore.interfaces import IContentish
 from Products.CMFCore.interfaces import ISiteRoot
 from Products.CMFCore.interfaces import ITypeInformation
-from Products.CMFCore.ActionProviderBase import ActionProviderBase
 from Products.CMFCore.PortalContent import PortalContent
+from Products.CMFCore.tests.base.security import DummyUser
+from Products.CMFCore.tests.base.security import OmnipotentUser
 
-from security import OmnipotentUser
 
-
 class DummyObject(Implicit):
     """
     A dummy callable object.
@@ -312,34 +312,6 @@
         return getattr(self, id, default)
 
 
-class DummyUser(Implicit):
-    """ A dummy User.
-    """
-
-    def __init__(self, id='dummy'):
-        self.id = id
-
-    def getId(self):
-        return self.id
-
-    def getUserName(self):
-        return 'name of %s' % self.getId()
-
-    def allowed(self, object, object_roles=None):
-        if object_roles is None or 'Anonymous' in object_roles:
-            return 1
-        for role in object_roles:
-            if role in self.getRolesInContext(object):
-                return 1
-        return 0
-
-    def getRolesInContext(self, object):
-        return ('Authenticated', 'Dummy', 'Member')
-
-    def _check_context(self, object):
-        return 1
-
-
 class DummyUserFolder(Implicit):
     """ A dummy User Folder with 2 dummy Users.
     """

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/base/security.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -18,9 +18,10 @@
 
 
 class PermissiveSecurityPolicy:
+
+    """Very permissive security policy for unit testing purposes.
     """
-        Very permissive security policy for unit testing purposes.
-    """
+
     #
     #   Standard SecurityPolicy interface
     #
@@ -39,87 +40,77 @@
             return True
 
     def checkPermission(self, permission, object, context):
-        if permission == 'forbidden permission':
-            return 0
-        if permission == 'addFoo':
-            return context.user.allowed(object, ['FooAdder'])
         roles = rolesForPermissionOn(permission, object)
         if isinstance(roles, basestring):
-            roles=[roles]
+            roles = [roles]
         return context.user.allowed(object, roles)
 
 
-class OmnipotentUser( Implicit ):
-    """
-      Omnipotent User for unit testing purposes.
-    """
-    def getId( self ):
-        return 'all_powerful_Oz'
+class _BaseUser(Implicit):
 
+    def getId(self):
+        return self._id
+
     def getUserName(self):
-        return 'All Powerful Oz'
+        return self._name
 
     def getRoles(self):
-        return ('Manager',)
+        return self._roles
 
-    def allowed( self, object, object_roles=None ):
-        return 1
-
     def getRolesInContext(self, object):
-        return ('Manager',)
+        return self._roles
 
+    def allowed(self, object, object_roles=None):
+        if object_roles is None or 'Anonymous' in object_roles:
+            return True
+        return any( r in self._roles for r in object_roles )
+
     def _check_context(self, object):
         return True
 
 
-class UserWithRoles( Implicit ):
+class OmnipotentUser(_BaseUser):
+
+    """Omnipotent user for unit testing purposes.
     """
-      User with roles specified in constructor
-      for unit testing purposes.
-    """
-    def __init__( self, *roles ):
-        self._roles = roles
 
-    def getId( self ):
-        return 'high_roller'
+    _id = 'all_powerful_Oz'
+    _name = 'All Powerful Oz'
+    _roles = ('Manager',)
 
-    def getUserName(self):
-        return 'High Roller'
+    def allowed(self, object, object_roles=None):
+        return True
 
-    def getRoles(self):
-        return self._roles
 
-    def allowed( self, object, object_roles=None ):
-        if object_roles is None:
-            object_roles=()
-        for orole in object_roles:
-            if orole in self._roles:
-                return 1
-        return 0
+class UserWithRoles(_BaseUser):
 
+    """User with roles specified in constructor for unit testing purposes.
+    """
 
-class AnonymousUser( Implicit ):
+    _id = 'high_roller'
+    _name = 'High Roller'
+
+    def __init__(self, *roles):
+        self._roles = roles
+
+
+class DummyUser(_BaseUser):
+
+    """ A dummy User.
     """
-      Anonymous USer for unit testing purposes.
-    """
-    def getId( self ):
-        return None
 
-    def getUserName(self):
-        return 'Anonymous User'
+    _roles = ('Authenticated', 'Dummy', 'Member')
 
-    def has_permission(self, permission, obj):
-        # For types tool tests dealing with filtered_meta_types
-        return 1
+    def __init__(self, id='dummy'):
+        self._id = id
+        self._name = 'name of %s' % id
 
-    def allowed( self, object, object_roles=None ):
-        # for testing permissions on actions
-        if object.getId() == 'actions_dummy':
-            if 'Anonymous' in object_roles:
-                return 1
-            else:
-                return 0
-        return 1
 
-    def getRoles(self):
-        return ('Anonymous',)
+class AnonymousUser(_BaseUser):
+
+    """Anonymous user for unit testing purposes.
+    """
+
+    _id = None
+    _name = 'Anonymous User'
+    _roles = ('Anonymous',)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_ActionsTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_ActionsTool.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_ActionsTool.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -16,6 +16,7 @@
 import unittest
 import Testing
 
+from AccessControl.SecurityManagement import newSecurityManager
 from zope.component import getSiteManager
 from zope.interface.verify import verifyClass
 from zope.testing.cleanup import cleanUp
@@ -26,6 +27,7 @@
 from Products.CMFCore.Expression import Expression
 from Products.CMFCore.interfaces import ISiteRoot
 from Products.CMFCore.MembershipTool import MembershipTool
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.tests.base.testcase import WarningInterceptor
 from Products.CMFCore.URLTool import URLTool
@@ -155,6 +157,8 @@
                                 visible=1)
             ,
             )
+
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
         self.assertEqual(tool.listFilteredActionsFor(root.foo),
                          {'workflow': [],
                           'user': [],

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSDTMLMethod.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -18,6 +18,7 @@
 
 from os.path import join as path_join
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from DateTime import DateTime
 from OFS.Folder import Folder
@@ -28,10 +29,11 @@
 from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.tests.base.dummy import DummyCachingManager
 from Products.CMFCore.tests.base.dummy import DummyCachingManagerWithPolicy
+from Products.CMFCore.tests.base.dummy import DummyContent
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
-from Products.CMFCore.tests.base.dummy import DummyContent
 
 
 class FSDTMLMaker(FSDVTest):
@@ -104,11 +106,13 @@
         self.assertEqual( data, '' )
         self.assertEqual( self.RESPONSE.getStatus(), 304 )
 
+
 class FSDTMLMethodCustomizationTests( SecurityTest, FSDTMLMaker ):
 
-    def setUp( self ):
+    def setUp(self):
         FSDTMLMaker.setUp(self)
-        SecurityTest.setUp( self )
+        SecurityTest.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
         self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
         self.skins = self.root.portal_skins
@@ -124,6 +128,10 @@
 
         self.fsDTML = self.fsdir.testDTML
 
+    def tearDown(self):
+        SecurityTest.tearDown(self)
+        FSDTMLMaker.tearDown(self)
+
     def test_customize( self ):
 
         self.fsDTML.manage_doCustomize( folder_path='custom' )
@@ -176,11 +184,7 @@
 
         self.assertEqual(custom_pt.ZCacheable_getManagerId(), cache_id)
 
-    def tearDown(self):
-        SecurityTest.tearDown(self)
-        FSDTMLMaker.tearDown(self)
 
-
 def test_suite():
     return unittest.TestSuite((
         unittest.makeSuite(FSDTMLMethodTests),

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPageTemplate.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -20,16 +20,18 @@
 
 from os.path import join as path_join
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from OFS.Folder import Folder
 from Products.StandardCacheManagers import RAMCacheManager
 from zope.tales.tales import Undefined
 from zope.testing.cleanup import cleanUp
 
+from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.FSPageTemplate import FSPageTemplate
-from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.testing import TraversingZCMLLayer
 from Products.CMFCore.tests.base.dummy import DummyCachingManager
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -163,6 +165,7 @@
     def setUp(self):
         FSPTMaker.setUp(self)
         SecurityTest.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
         self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
         self.skins = self.root.portal_skins

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPropertiesObject.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -15,20 +15,23 @@
 
 import unittest
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
 
 
 class FSPOTests(SecurityTest, FSDVTest):
 
-    def setUp( self ):
+    def setUp(self):
         FSDVTest.setUp(self)
-        SecurityTest.setUp( self )
+        SecurityTest.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
-    def tearDown( self ):
-        SecurityTest.tearDown( self )
+    def tearDown(self):
+        SecurityTest.tearDown(self)
         FSDVTest.tearDown(self)
 
     def _getTargetClass( self ):

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSPythonScript.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -22,6 +22,7 @@
 from thread import start_new_thread
 from time import sleep
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from OFS.Folder import Folder
 from OFS.SimpleItem import SimpleItem
@@ -29,6 +30,7 @@
 
 from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.FSPythonScript import FSPythonScript
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.tests.base.testcase import WarningInterceptor
@@ -83,9 +85,10 @@
 
 class FSPythonScriptCustomizationTests(SecurityTest, FSPSMaker):
 
-    def setUp( self ):
+    def setUp(self):
         FSPSMaker.setUp(self)
-        SecurityTest.setUp( self )
+        SecurityTest.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
     def tearDown(self):
         SecurityTest.tearDown(self)

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSReSTMethod.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -19,10 +19,12 @@
 import os
 import re
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.testing import TraversingZCMLLayer
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -154,6 +156,7 @@
 
         SecurityTest.setUp(self)
         FSReSTMaker.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
         self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
         self.skins = self.root.portal_skins

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSSTXMethod.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -19,10 +19,12 @@
 import os
 import re
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from zope.testing.cleanup import cleanUp
 
 from Products.CMFCore.testing import TraversingZCMLLayer
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import RequestTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
@@ -188,6 +190,7 @@
         _TemplateSwitcher.setUp(self)
         SecurityTest.setUp(self)
         FSSTXMaker.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
         self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
         self.skins = self.root.portal_skins

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_FSZSQLMethod.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -19,11 +19,13 @@
 
 from os.path import join
 
+from AccessControl.SecurityManagement import newSecurityManager
 from Acquisition import aq_base
 from OFS.Folder import Folder
 
 from Products.CMFCore.FSMetadata import FSMetadata
 from Products.CMFCore.FSZSQLMethod import FSZSQLMethod
+from Products.CMFCore.tests.base.security import OmnipotentUser
 from Products.CMFCore.tests.base.testcase import FSDVTest
 from Products.CMFCore.tests.base.testcase import SecurityTest
 
@@ -59,9 +61,10 @@
 
 class FSZSQLMethodCustomizationTests(SecurityTest, FSZSQLMaker):
 
-    def setUp( self ):
+    def setUp(self):
         FSZSQLMaker.setUp(self)
-        SecurityTest.setUp( self )
+        SecurityTest.setUp(self)
+        newSecurityManager(None, OmnipotentUser().__of__(self.app.acl_users))
 
         self.root._setObject( 'portal_skins', Folder( 'portal_skins' ) )
         self.skins = self.root.portal_skins

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_PortalFolder.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -169,6 +169,9 @@
         self.site = DummySite('site').__of__(self.root)
 
     def test_contents_methods(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
+
         ttool = self.site._setObject( 'portal_types', TypesTool() )
         f = self._makeOne('foo')
         self.assertEqual( f.objectValues(), [] )
@@ -205,6 +208,8 @@
         self.assertEqual( f.listDAVObjects(), [f.sub1, f.hidden_sub2] )
 
     def test_deletePropagation(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         foo = DummyContent('foo')
         foo.reset()
@@ -227,6 +232,8 @@
         self.failIf( foo.before_delete_called )
 
     def test_manageDelObjects(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         foo = DummyContent('foo')
 
@@ -241,6 +248,8 @@
         # Test is a new object does get cataloged upon _setObject
         # and uncataloged upon manage_deleteObjects
         #
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         ttool = self.site._setObject( 'portal_types', TypesTool() )
         ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
@@ -278,6 +287,8 @@
         #
         from Products.CMFCore.PortalFolder import PortalFolder
 
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         ttool = self.site._setObject( 'portal_types', TypesTool() )
         ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
@@ -305,6 +316,8 @@
         #
         from Products.CMFCore.PortalFolder import PortalFolder
 
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
 
         ttool = self.site._setObject( 'portal_types', TypesTool() )
@@ -385,6 +398,8 @@
         #
         # Copy/Paste should obey workflow guards
         #
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         ttool = self.site._setObject('portal_types', TypesTool())
         fti = FTIDATA_DUMMY[0].copy()
         ttool._setObject('Dummy Content', FTI(**fti))
@@ -424,6 +439,8 @@
         #
         #   _setObject() should raise BadRequest on duplicate id
         #
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         test._setObject('foo', DummyContent('foo'))
         self.assertRaises(BadRequest, test._setObject, 'foo',
@@ -433,11 +450,15 @@
         #
         #   _checkId() should raise BadRequest on duplicate id
         #
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         test._setObject('foo', DummyContent('foo'))
         self.assertRaises(BadRequest, test._checkId, 'foo')
 
     def test__checkId_PortalRoot(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         acl_users = self.site._setObject('acl_users', DummyUserFolder())
         test._checkId('acl_users')
@@ -445,6 +466,8 @@
         self.assertRaises(BadRequest, test._checkId, 'acl_users')
 
     def test__checkId_MethodAlias(self):
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         test._setPortalTypeName('Dummy Content 15')
         ttool = self.site._setObject('portal_types', TypesTool())
@@ -481,6 +504,8 @@
         #
         #   checkIdAvailable() should catch BadRequest
         #
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         test = self._makeOne('test')
         test._setObject('foo', DummyContent('foo'))
         self.failIf(test.checkIdAvailable('foo'))
@@ -506,6 +531,8 @@
         #
         from Products.CMFCore.PortalFolder import PortalFolder
 
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         ttool = self.site._setObject( 'portal_types', TypesTool() )
         ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
         self.assertEqual( len(ctool), 0 )
@@ -551,6 +578,8 @@
         #
         #   Does copy / paste work?
         #
+        acl_users = self.site._setObject('acl_users', DummyUserFolder())
+        newSecurityManager(None, acl_users.all_powerful_Oz)
         ctool = self.site._setObject( 'portal_catalog', DummyCatalogTool() )
         ttool = self.site._setObject( 'portal_types', TypesTool() )
         fti = FTIDATA_DUMMY[0].copy()

Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py
===================================================================
--- Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py	2010-12-26 11:07:20 UTC (rev 119120)
+++ Products.CMFCore/trunk/Products/CMFCore/tests/test_TypesTool.py	2010-12-26 11:07:52 UTC (rev 119121)
@@ -15,10 +15,13 @@
 
 import unittest
 
+from AccessControl.Permission import Permission
+
 from Products.CMFCore.testing import FunctionalZCMLLayer
 from Products.CMFCore.tests.base.testcase import SecurityTest
 from Products.CMFCore.tests.base.testcase import WarningInterceptor
 
+
 class TypesToolTests(unittest.TestCase):
 
     def _getTargetClass(self):
@@ -72,6 +75,7 @@
         self.assertEqual(ti._action_info, 'fake_info')
         self.assertEqual(ti._action_obj, dummy)
 
+
 class TypesToolFunctionalTests(SecurityTest):
 
     layer = FunctionalZCMLLayer
@@ -618,13 +622,16 @@
         from AccessControl.SecurityManagement import newSecurityManager
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.security import UserWithRoles
+
         self.f = DummyFolder(fake_product=1)
+        Permission('addFoo', (), self.f).setRoles(('Manager', 'FooAdder'))
         self.ti = self._makeOne('Foo', product='FooProduct', factory='addFoo')
         newSecurityManager(None, UserWithRoles('FooAdder').__of__(self.f))
 
     def tearDown(self):
         from AccessControl.SecurityManagement import noSecurityManager
         from zope.testing.cleanup import cleanUp
+
         cleanUp()
         noSecurityManager()
 
@@ -692,17 +699,20 @@
         from Products.CMFCore.tests.base.dummy import DummyFactory
         from Products.CMFCore.tests.base.dummy import DummyFolder
         from Products.CMFCore.tests.base.security import UserWithRoles
+
         SecurityTest.setUp(self)
         sm = getSiteManager()
         sm.registerUtility(DummyFactory, IFactory, 'test.dummy')
 
         self.f = DummyFolder()
+        Permission('addFoo', (), self.f).setRoles(('Manager', 'FooAdder'))
         self.ti = self._makeOne('Foo', meta_type='Dummy',
                                 factory='test.dummy')
         newSecurityManager(None, UserWithRoles('FooAdder').__of__(self.f))
 
     def tearDown(self):
         from zope.testing.cleanup import cleanUp
+
         cleanUp()
         SecurityTest.tearDown(self)
 
@@ -762,6 +772,7 @@
         self.failUnless(IContainerModifiedEvent.providedBy(evt))
         self.assertEquals(evt.object, self.f)
 
+
 class DummyWorkflowTool:
 
     def __init__(self, *workflows):
@@ -770,6 +781,7 @@
     def getWorkflowsFor(self, type_id):
         return self._workflows
 
+
 class DummyWorkflow:
 
     def __init__(self, allow):



More information about the checkins mailing list