[CMF-checkins] CVS: CMF/CMFCore/tests - test_MembershipTool.py:1.3

Yvo Schubbe schubbe@web.de
Wed, 28 May 2003 06:58:12 -0400


Update of /cvs-repository/CMF/CMFCore/tests
In directory cvs.zope.org:/tmp/cvs-serv32699/CMFCore/tests

Modified Files:
	test_MembershipTool.py 
Log Message:
Merged yuppie-collector162-branch:
- Fixed member area Ownership and Roles. (Collector #162)

=== CMF/CMFCore/tests/test_MembershipTool.py 1.2 => 1.3 ===
--- CMF/CMFCore/tests/test_MembershipTool.py:1.2	Mon Jan  6 16:04:41 2003
+++ CMF/CMFCore/tests/test_MembershipTool.py	Wed May 28 06:57:42 2003
@@ -2,14 +2,34 @@
 
 import Zope
 try:
+    Zope.startup()
+except AttributeError:
+    # for Zope versions before 2.6.1
+    pass
+try:
     from Interface.Verify import verifyClass
 except ImportError:
     # for Zope versions before 2.6.0
     from Interface import verify_class_implementation as verifyClass
 
+from Products.CMFCore.PortalFolder import PortalFolder
+from Products.CMFCore.tests.base.dummy import DummyFolder as DummyFolderBase
+from Products.CMFCore.tests.base.dummy import DummyTool
+from Products.CMFCore.tests.base.dummy import DummyUserFolder
+from Products.CMFCore.tests.base.testcase import SecurityTest
+
 from Products.CMFCore.MembershipTool import MembershipTool
 
 
+class DummyFolder(DummyFolderBase):
+    def _getProductRegistryData(self, name):
+        return ()
+    def getPhysicalRoot(self):
+        return self
+    def unrestrictedTraverse(self, path, default=None, restricted=0):
+        return self.acl_users
+
+
 class MembershipToolTests(TestCase):
 
     def test_interface(self):
@@ -22,9 +42,34 @@
         verifyClass(IActionProvider, MembershipTool)
 
 
+class MembershipToolSecurityTests(SecurityTest):
+
+    def setUp(self):
+        SecurityTest.setUp(self)
+        self.site = DummyFolder()
+        self.site.id = 'testSite'
+        self.mtool = MembershipTool().__of__(self.site)
+
+    def test_createMemberarea(self):
+        mtool = self.mtool
+        self.site._setObject( 'Members', PortalFolder('Members') )
+        self.site._setObject( 'acl_users', DummyUserFolder() )
+        self.site._setObject( 'portal_workflow', DummyTool() )
+        mtool.createMemberarea('user_foo')
+
+        f = self.site.Members.user_foo
+        ownership = self.site.acl_users.user_foo
+        localroles = ( ( 'user_foo', ('Owner',) ), )
+        self.assertEqual( f.getOwner(), ownership )
+        self.assertEqual( f.get_local_roles(), localroles,
+                          'CMF Collector issue #162 (LocalRoles broken): %s'
+                          % str( f.get_local_roles() ) )
+
+
 def test_suite():
     return TestSuite((
         makeSuite( MembershipToolTests ),
+        makeSuite( MembershipToolSecurityTests )
         ))
 
 if __name__ == '__main__':