1
##############################################################################
3
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
6
# This software is subject to the provisions of the Zope Public License,
7
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
8
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
9
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
10
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
11
# FOR A PARTICULAR PURPOSE.
13
##############################################################################
14
"""Security Directives Tests
19
from zope.configuration.config import ConfigurationConflictError
20
from zope.configuration import xmlconfig
22
from zope.component import getUtility
23
from zope.app.testing import ztapi
24
from zope.app.testing.placelesssetup import PlacelessSetup
26
from zope.security.interfaces import IPermission
27
from zope.app.security.interfaces import IAuthentication
28
from zope.app.security.principalregistry import principalRegistry
29
import zope.app.security.tests
32
class TestBase(PlacelessSetup):
35
super(TestBase, self).setUp()
36
ztapi.provideUtility(IAuthentication, principalRegistry)
39
class TestPrincipalDirective(TestBase, unittest.TestCase):
41
def testRegister(self):
42
context = xmlconfig.file("principal.zcml", zope.app.security.tests)
45
p = reg.getPrincipal('zope.p1')
46
self.assertEqual(p.id, 'zope.p1')
47
self.assertEqual(p.title, 'Sir Tim Peters')
48
self.assertEqual(p.description, 'Tim Peters')
49
p = reg.getPrincipal('zope.p2')
50
self.assertEqual(p.id, 'zope.p2')
51
self.assertEqual(p.title, 'Sir Jim Fulton')
52
self.assertEqual(p.description, 'Jim Fulton')
54
self.assertEqual(len(reg.getPrincipals('')), 2)
57
class TestPermissionDirective(TestBase, unittest.TestCase):
59
def testRegister(self):
60
context = xmlconfig.file("perm.zcml", zope.app.security.tests)
61
perm = getUtility(IPermission, "Can.Do.It")
62
self.failUnless(perm.id.endswith('Can.Do.It'))
63
self.assertEqual(perm.title, 'A Permissive Permission')
64
self.assertEqual(perm.description,
65
'This permission lets you do anything')
67
def testDuplicationRegistration(self):
68
self.assertRaises(ConfigurationConflictError, xmlconfig.file,
69
"perm_duplicate.zcml", zope.app.security.tests)
73
return unittest.TestSuite((
74
unittest.makeSuite(TestPrincipalDirective),
75
unittest.makeSuite(TestPermissionDirective),
78
if __name__ == '__main__':