[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