[z3-checkins] r5230 - z3/Five/trunk/tests

faassen at codespeak.net faassen at codespeak.net
Tue Jun 22 11:41:16 MEST 2004


Author: faassen
Date: Tue Jun 22 11:41:16 2004
New Revision: 5230

Added:
   z3/Five/trunk/tests/test_security2.py
Log:
Adding new security tests that don't poke into Zope innards to find out
whether security works; just use has_permission.


Added: z3/Five/trunk/tests/test_security2.py
==============================================================================
--- (empty file)
+++ z3/Five/trunk/tests/test_security2.py	Tue Jun 22 11:41:16 2004
@@ -0,0 +1,49 @@
+import os, sys
+
+if __name__ == '__main__':
+    execfile(os.path.join(sys.path[0], 'framework.py'))
+
+import unittest
+from AccessControl import getSecurityManager
+from Testing import ZopeTestCase
+
+ZopeTestCase.installProduct('Five')
+ZopeTestCase.installProduct('FiveTest')
+
+ViewManagementScreens = 'View management screens'
+
+class SecurityTestCase(ZopeTestCase.ZopeTestCase):
+    
+    def afterSetUp(self):
+        self.folder.manage_addProduct['FiveTest'].manage_addSimpleContent(
+            'testoid', 'Testoid')
+        uf = self.folder.acl_users
+        uf._doAddUser('viewer', 'secret', [], [])
+        uf._doAddUser('manager', 'r00t', ['Manager'], [])
+
+    def assertPermission(self, permission, object):
+         user = getSecurityManager().getUser()
+         self.assert_(user.has_permission(permission, object))
+
+    def assertNoPermission(self, permission, object):
+         user = getSecurityManager().getUser()
+         self.assert_(not user.has_permission(permission, object))
+        
+    def test_one(self):
+        self.login('viewer')
+        view = self.folder.unrestrictedTraverse('testoid/eagle.txt')
+        self.assertNoPermission(ViewManagementScreens, view)
+        
+    def test_two(self):
+        self.login('manager')
+        view = self.folder.unrestrictedTraverse('testoid/eagle.txt')
+        self.assertPermission(ViewManagementScreens, view)
+        
+def test_suite():
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(SecurityTestCase))
+    return suite
+
+if __name__ == '__main__':
+    framework()
+


More information about the z3-checkins mailing list