[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/tests - testRolePermissionView.py:1.1.2.1
Jim Fulton
jim@zope.com
Thu, 3 Jan 2002 14:08:18 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/tests
In directory cvs.zope.org:/tmp/cvs-serv12355/tests
Added Files:
Tag: Zope-3x-branch
testRolePermissionView.py
Log Message:
Added view component for managing role-permission settings
=== Added File Zope3/lib/python/Zope/App/Security/tests/testRolePermissionView.py ===
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
#
##############################################################################
import unittest, sys
from Zope.ComponentArchitecture import defineService, provideService, _clear
from Zope.App.Security.IRoleService import IRoleService
from RoleService import RoleService
from PermissionService import PermissionService
from RolePermissionManager import RolePermissionManager
from Zope.App.Security.RolePermissionView import RolePermissionView
from Zope.App.Security.IPermissionService import IPermissionService
class Test(unittest.TestCase):
def setUp(self):
_clear()
defineService('RoleService', IRoleService)
provideService('RoleService', RoleService(
manager='Manager', member='Member'))
defineService('PermissionService', IPermissionService)
provideService('PermissionService', PermissionService(
read='Read', write='Write'))
self.view = RolePermissionView(RolePermissionManager())
def tearDown(self):
_clear()
def testRoles(self):
roles = list(self.view.roles())
ids = ['manager', 'member']
titles = ['Manager', 'Member']
for role in roles:
i=ids.index(role.getId())
self.failIf(i < 0)
self.assertEqual(role.getTitle(), titles[i])
del ids[i]
del titles[i]
def testPermisssions(self):
permissions = list(self.view.permissions())
ids = ['read', 'write']
titles = ['Read', 'Write']
for permission in permissions:
i=ids.index(permission.getId())
self.failIf(i < 0)
self.assertEqual(permission.getTitle(), titles[i])
del ids[i]
del titles[i]
def testGrant(self):
roles = self.view.roles()
permissions = self.view.permissions()
self.view.action({
'p0': 'read', 'p1': 'write',
'r0': 'manager', 'r1': 'member',
'p0r0': '1', 'p0r1': '1', 'p1r0': '1',
})
permissionRoles = self.view.permissionRoles()
for ip in range(len(permissionRoles)):
permissionRole = permissionRoles[ip]
rset = permissionRole.roles()
for ir in range(len(rset)):
setting = rset[ir]
if setting is None:
self.failIf(
roles[ir].getId() == 'manager'
or
permissions[ip].getId() == 'read'
)
else:
self.failUnless(
roles[ir].getId() == 'manager'
or
permissions[ip].getId() == 'read'
)
self.view.action({
'p0': 'read', 'p1': 'write',
'r0': 'manager', 'r1': 'member',
'p0r0': '1',
})
permissionRoles = self.view.permissionRoles()
for ip in range(len(permissionRoles)):
permissionRole = permissionRoles[ip]
rset = permissionRole.roles()
for ir in range(len(rset)):
setting = rset[ir]
if setting is None:
self.failIf(
roles[ir].getId() == 'manager'
and
permissions[ip].getId() == 'read'
)
else:
self.failUnless(
roles[ir].getId() == 'manager'
and
permissions[ip].getId() == 'read'
)
def test_suite():
loader=unittest.TestLoader()
return loader.loadTestsFromTestCase(Test)
if __name__=='__main__':
unittest.TextTestRunner().run(test_suite())