[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/Grants/Views/Browser/tests - testRolePermissionView.py:1.3

Florent Guillaume fg@nuxeo.com
Tue, 25 Jun 2002 06:30:25 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/Grants/Views/Browser/tests
In directory cvs.zope.org:/tmp/cvs-serv18043/tests

Modified Files:
	testRolePermissionView.py 
Log Message:
Fix RolePermissions and PermissionRoles views. Split and fix tests.

The Role/Permission management screen should now be useable (if
not pretty).


=== Zope3/lib/python/Zope/App/Security/Grants/Views/Browser/tests/testRolePermissionView.py 1.2 => 1.3 ===
             del titles[i]
 
-    def testGrantDenyUnset(self):
+    def testMatrix(self):
         roles = self.view.roles()
         permissions = self.view.permissions()
 
@@ -113,82 +113,59 @@
                 else:
                     self.failUnless(setting == 'Unset')
 
-
+    def testPermissionRoles(self):
         self.view.update_permission(REQUEST=None,
                                     permission_id='write',
-                                    roles=['member'],
+                                    settings=['Allow', 'Unset'],
                                     testing=1)
-
         permission = self.view.permissionForID('write')
-        self.assertEquals(
-            [r['id']
-             for r in permission.rolesInfo()
-             if r['checked']],
-            ['member'])
-
-        self.view.update_permission(REQUEST=None,
-                                    permission_id='write',
-                                    # roles=[],  roles attr omitted
-                                    testing=1)
+        settings = permission.roleSettings()
+        self.assertEquals(settings, ['Allow', 'Unset'])
 
-        permission = self.view.permissionForID('write')
-        self.assertEquals(
-            [r['id']
-             for r in permission.rolesInfo()
-             if r['checked']],
-            [])
 
         self.view.update_permission(REQUEST=None,
                                     permission_id='write',
-                                    roles=['manager','member'],
+                                    settings=['Unset', 'Deny'],
                                     testing=1)
-
         permission = self.view.permissionForID('write')
-        result = [r['id']
-                  for r in permission.rolesInfo()
-                  if r['checked']]
-        what_result_should_be = ['manager','member']
-        result.sort()
-        what_result_should_be.sort()
-        self.assertEquals(
-            result,
-            what_result_should_be
-            )
+        settings = permission.roleSettings()
+        self.assertEquals(settings, ['Unset', 'Deny'])
 
-        self.view.update_role(REQUEST=None,
+        self.assertRaises(ValueError,
+                          self.view.update_permission,
+                          REQUEST=None,
+                          permission_id='write',
+                          settings=['Unset', 'foo'],
+                          testing=1)
+
+    def testRolePermissions(self):
+        REQ={'Allow': ['read'],
+             'Deny': ['write']}
+        self.view.update_role(REQUEST=REQ,
                               role_id='member',
-                              permissions=['write','read'],
                               testing=1)
-
         role = self.view.roleForID('member')
-        result = [r['id']
-                  for r in role.permissionsInfo()
-                  if r['checked']]
-        what_result_should_be = ['write','read']
-        result.sort()
-        what_result_should_be.sort()
-        self.assertEquals(
-            result,
-            what_result_should_be
-            )
-
-        self.view.update_role(REQUEST=None,
+        pinfos = role.permissionsInfo()
+        for pinfo in pinfos:
+            pid = pinfo['id']
+            if pid == 'read':
+                self.assertEquals(pinfo['setting'], 'Allow')
+            if pid == 'write':
+                self.assertEquals(pinfo['setting'], 'Deny')
+
+        REQ={'Allow': [],
+             'Deny': ['read']}
+        self.view.update_role(REQUEST=REQ,
                               role_id='member',
-                              # omitted attribute permissions,
                               testing=1)
-
         role = self.view.roleForID('member')
-        result = [r['id']
-                  for r in role.permissionsInfo()
-                  if r['checked']]
-        what_result_should_be = []
-        result.sort()
-        what_result_should_be.sort()
-        self.assertEquals(
-            result,
-            what_result_should_be
-            )
-
+        pinfos = role.permissionsInfo()
+        for pinfo in pinfos:
+            pid = pinfo['id']
+            if pid == 'read':
+                self.assertEquals(pinfo['setting'], 'Deny')
+            if pid == 'write':
+                self.assertEquals(pinfo['setting'], 'Unset')
 
 
 def test_suite():