summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-09-06 03:58:46 +0000
committerChris McDonough <chrism@agendaless.com>2009-09-06 03:58:46 +0000
commit573184904e48fa5eb9c04e7d3d321183b3e96f6d (patch)
tree912d394af04622e9667da31b76ea9276878d700f /repoze/bfg/tests
parentd66bfb5d1f1aef5cce4941b49740dbd136c95605 (diff)
downloadpyramid-573184904e48fa5eb9c04e7d3d321183b3e96f6d.tar.gz
pyramid-573184904e48fa5eb9c04e7d3d321183b3e96f6d.tar.bz2
pyramid-573184904e48fa5eb9c04e7d3d321183b3e96f6d.zip
Remove 0.9 deprecations.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_secpols.py738
-rw-r--r--repoze/bfg/tests/test_zcml.py55
2 files changed, 0 insertions, 793 deletions
diff --git a/repoze/bfg/tests/test_secpols.py b/repoze/bfg/tests/test_secpols.py
deleted file mode 100644
index 8f60a0d94..000000000
--- a/repoze/bfg/tests/test_secpols.py
+++ /dev/null
@@ -1,738 +0,0 @@
-import unittest
-
-from repoze.bfg.testing import cleanUp
-
-class TestAPIFunctionsSecpolBBB(unittest.TestCase):
- def setUp(self):
- cleanUp()
-
- def tearDown(self):
- cleanUp()
- try:
- del globals()['__warningregistry__']
- except KeyError:
- pass
-
- def _registerSecurityPolicy(self, secpol):
- import zope.component
- from repoze.bfg.secpols import registerBBBAuthn
- gsm = zope.component.getGlobalSiteManager()
- registerBBBAuthn(secpol, gsm)
-
- def test_has_permission_registered(self):
- secpol = DummySecurityPolicy(False)
- self._registerSecurityPolicy(secpol)
- from repoze.bfg.security import has_permission
- self.assertEqual(has_permission('view', None, None), False)
-
- def test_has_permission_not_registered(self):
- from repoze.bfg.security import has_permission
- result = has_permission('view', None, None)
- self.assertEqual(result, True)
- self.assertEqual(result.msg, 'No authentication policy in use.')
-
- def test_authenticated_userid_registered(self):
- secpol = DummySecurityPolicy(False)
- self._registerSecurityPolicy(secpol)
- from repoze.bfg.security import authenticated_userid
- request = DummyRequest({})
- result = authenticated_userid(request)
- self.assertEqual(result, 'fred')
-
- def test_authenticated_userid_not_registered(self):
- from repoze.bfg.security import authenticated_userid
- request = DummyRequest({})
- result = authenticated_userid(request)
- self.assertEqual(result, None)
-
- def test_effective_principals_registered(self):
- secpol = DummySecurityPolicy(False)
- self._registerSecurityPolicy(secpol)
- from repoze.bfg.security import effective_principals
- request = DummyRequest({})
- result = effective_principals(request)
- self.assertEqual(result, ['fred', 'bob'])
-
- def test_effective_principals_not_registered(self):
- from repoze.bfg.security import effective_principals
- request = DummyRequest({})
- result = effective_principals(request)
- self.assertEqual(result, [])
-
- def test_principals_allowed_by_permission_not_registered(self):
- from repoze.bfg.security import principals_allowed_by_permission
- from repoze.bfg.security import Everyone
- self.assertEqual(principals_allowed_by_permission(None, None),
- [Everyone])
-
- def test_principals_allowed_by_permission_registered(self):
- secpol = DummySecurityPolicy(False)
- self._registerSecurityPolicy(secpol)
- from repoze.bfg.security import principals_allowed_by_permission
- self.assertEqual(principals_allowed_by_permission(None, None),
- ['fred', 'bob'])
-
-
-class TestACLSecurityPolicy(unittest.TestCase):
- def setUp(self):
- cleanUp()
-
- def tearDown(self):
- cleanUp()
-
- def _getTargetClass(self):
- from repoze.bfg.secpols import ACLSecurityPolicy
- return ACLSecurityPolicy
-
- def _makeOne(self, *arg, **kw):
- klass = self._getTargetClass()
- return klass(*arg, **kw)
-
- def test_class_implements_ISecurityPolicy(self):
- from zope.interface.verify import verifyClass
- from repoze.bfg.interfaces import ISecurityPolicy
- verifyClass(ISecurityPolicy, self._getTargetClass())
-
- def test_instance_implements_ISecurityPolicy(self):
- from zope.interface.verify import verifyObject
- from repoze.bfg.interfaces import ISecurityPolicy
- verifyObject(ISecurityPolicy, self._makeOne(lambda *arg: None))
-
- def test_permits_no_principals_no_acl_info_on_context(self):
- context = DummyContext()
- request = DummyRequest({})
- policy = self._makeOne(lambda *arg: [])
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, False)
- from repoze.bfg.security import Everyone
- self.assertEqual(result.principals, set([Everyone]))
- self.assertEqual(result.permission, 'view')
- self.assertEqual(result.context, context)
-
- def test_permits_no_principals_empty_acl_info_on_context(self):
- context = DummyContext()
- context.__acl__ = []
- request = DummyRequest({})
- policy = self._makeOne(lambda *arg: [])
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, False)
- from repoze.bfg.security import Everyone
- self.assertEqual(result.principals, set([Everyone]))
- self.assertEqual(result.permission, 'view')
- self.assertEqual(result.context, context)
-
- def test_permits_no_principals_root_has_empty_acl_info(self):
- context = DummyContext()
- context.__name__ = None
- context.__parent__ = None
- context.__acl__ = []
- context2 = DummyContext()
- context2.__name__ = 'context2'
- context2.__parent__ = context
- request = DummyRequest({})
- policy = self._makeOne(lambda *arg: [])
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, False)
- from repoze.bfg.security import Everyone
- self.assertEqual(result.principals, set([Everyone]))
- self.assertEqual(result.permission, 'view')
- self.assertEqual(result.context, context)
-
- def test_permits_no_principals_root_allows_everyone(self):
- context = DummyContext()
- context.__name__ = None
- context.__parent__ = None
- from repoze.bfg.security import Allow, Everyone
- context.__acl__ = [ (Allow, Everyone, 'view') ]
- context2 = DummyContext()
- context2.__name__ = 'context2'
- context2.__parent__ = context
- request = DummyRequest({})
- policy = self._makeOne(lambda *arg: [])
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.principals, set([Everyone]))
- self.assertEqual(result.permission, 'view')
- self.assertEqual(result.context, context)
-
- def test_permits_deny_implicit(self):
- from repoze.bfg.security import Allow, Authenticated, Everyone
- context = DummyContext()
- context.__acl__ = [ (Allow, 'somebodyelse', 'read') ]
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'read')
- self.assertEqual(result, False)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'read')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, None)
-
- def test_permits_deny_explicit(self):
- from repoze.bfg.security import Deny, Authenticated, Everyone
- context = DummyContext()
- context.__acl__ = [ (Deny, 'fred', 'read') ]
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'read')
- self.assertEqual(result, False)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'read')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, (Deny, 'fred', 'read'))
-
- def test_permits_deny_twoacl_implicit(self):
- from repoze.bfg.security import Allow, Authenticated, Everyone
- context = DummyContext()
- acl = [(Allow, 'somebody', 'view'), (Allow, 'somebody', 'write')]
- context.__acl__ = acl
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'read')
- self.assertEqual(result, False)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'read')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, None)
-
- def test_permits_allow_twoacl_multiperm(self):
- from repoze.bfg.security import Allow, Deny, Authenticated, Everyone
- context = DummyContext()
- acl = [ (Allow, 'fred', ('write', 'view') ), (Deny, 'fred', 'view') ]
- context.__acl__ = acl
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'view')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, (Allow, 'fred', ('write', 'view') ))
-
- def test_permits_deny_twoacl_multiperm(self):
- from repoze.bfg.security import Allow, Deny, Authenticated, Everyone
- context = DummyContext()
- acl = []
- deny = (Deny, 'fred', ('view', 'read'))
- allow = (Allow, 'fred', 'view')
- context.__acl__ = [deny, allow]
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'read')
- self.assertEqual(result, False)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'read')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, deny)
-
- def test_permits_allow_via_location_parent(self):
- from repoze.bfg.security import Allow, Authenticated, Everyone
- context = DummyContext()
- context.__parent__ = None
- context.__name__ = None
- context.__acl__ = [ (Allow, 'fred', 'read') ]
- context2 = DummyContext()
- context2.__parent__ = context
- context2.__name__ = 'myname'
-
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context2, request, 'read')
- self.assertEqual(result, True)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'read')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, ('Allow', 'fred', 'read'))
-
- def test_permits_deny_byorder(self):
- from repoze.bfg.security import Allow, Deny, Authenticated, Everyone
- context = DummyContext()
- acl = []
- deny = (Deny, 'fred', 'read')
- allow = (Allow, 'fred', 'view')
- context.__acl__ = [deny, allow]
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'read')
- self.assertEqual(result, False)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'read')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, deny)
-
- def test_permits_allow_byorder(self):
- from repoze.bfg.security import Allow, Deny, Authenticated, Everyone
- context = DummyContext()
- acl = []
- deny = (Deny, 'fred', ('view', 'read'))
- allow = (Allow, 'fred', 'view')
- context.__acl__ = [allow, deny]
- policy = self._makeOne(lambda *arg: ['fred'])
- request = DummyRequest({})
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.principals,
- set(['fred', Authenticated, Everyone]))
- self.assertEqual(result.permission, 'view')
- self.assertEqual(result.context, context)
- self.assertEqual(result.ace, allow)
-
- def test_principals_allowed_by_permission_direct(self):
- from repoze.bfg.security import Allow
- context = DummyContext()
- acl = [ (Allow, 'chrism', ('read', 'write')),
- (Allow, 'other', 'read') ]
- context.__acl__ = acl
- policy = self._makeOne(lambda *arg: None)
- result = policy.principals_allowed_by_permission(context, 'read')
- self.assertEqual(result, ['chrism', 'other'])
-
- def test_principals_allowed_by_permission_acquired(self):
- from repoze.bfg.security import Allow
- context = DummyContext()
- acl = [ (Allow, 'chrism', ('read', 'write')),
- (Allow, 'other', ('read',)) ]
- context.__acl__ = acl
- context.__parent__ = None
- context.__name__ = 'context'
- inter = DummyContext()
- inter.__name__ = None
- inter.__parent__ = context
- policy = self._makeOne(lambda *arg: None)
- result = policy.principals_allowed_by_permission(inter, 'read')
- self.assertEqual(result, ['chrism', 'other'])
-
- def test_principals_allowed_by_permission_no_acls(self):
- policy = self._makeOne(lambda *arg: None)
- result = policy.principals_allowed_by_permission(None, 'read')
- self.assertEqual(result, [])
-
-class TestInheritingACLSecurityPolicy(unittest.TestCase):
- def setUp(self):
- cleanUp()
-
- def tearDown(self):
- cleanUp()
-
- def _getTargetClass(self):
- from repoze.bfg.secpols import InheritingACLSecurityPolicy
- return InheritingACLSecurityPolicy
-
- def _makeOne(self, *arg, **kw):
- klass = self._getTargetClass()
- return klass(*arg, **kw)
-
- def test_class_implements_ISecurityPolicy(self):
- from zope.interface.verify import verifyClass
- from repoze.bfg.interfaces import ISecurityPolicy
- verifyClass(ISecurityPolicy, self._getTargetClass())
-
- def test_instance_implements_ISecurityPolicy(self):
- from zope.interface.verify import verifyObject
- from repoze.bfg.interfaces import ISecurityPolicy
- verifyObject(ISecurityPolicy, self._makeOne(lambda *arg: None))
-
- def test_permits(self):
- from repoze.bfg.security import Deny
- from repoze.bfg.security import Allow
- from repoze.bfg.security import Everyone
- from repoze.bfg.security import Authenticated
- from repoze.bfg.security import ALL_PERMISSIONS
- from repoze.bfg.security import DENY_ALL
- policy = self._makeOne(lambda *arg: [])
- root = DummyContext()
- community = DummyContext(__name__='community', __parent__=root)
- blog = DummyContext(__name__='blog', __parent__=community)
- root.__acl__ = [
- (Allow, Authenticated, VIEW),
- ]
- community.__acl__ = [
- (Allow, 'fred', ALL_PERMISSIONS),
- (Allow, 'wilma', VIEW),
- DENY_ALL,
- ]
- blog.__acl__ = [
- (Allow, 'barney', MEMBER_PERMS),
- (Allow, 'wilma', VIEW),
- ]
- policy = self._makeOne(lambda request: request.principals)
- request = DummyRequest({})
-
- request.principals = ['wilma']
- result = policy.permits(blog, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.context, blog)
- self.assertEqual(result.ace, (Allow, 'wilma', VIEW))
- result = policy.permits(blog, request, 'delete')
- self.assertEqual(result, False)
- self.assertEqual(result.context, community)
- self.assertEqual(result.ace, (Deny, Everyone, ALL_PERMISSIONS))
-
- request.principals = ['fred']
- result = policy.permits(blog, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.context, community)
- self.assertEqual(result.ace, (Allow, 'fred', ALL_PERMISSIONS))
- result = policy.permits(blog, request, 'doesntevenexistyet')
- self.assertEqual(result, True)
- self.assertEqual(result.context, community)
- self.assertEqual(result.ace, (Allow, 'fred', ALL_PERMISSIONS))
-
- request.principals = ['barney']
- result = policy.permits(blog, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.context, blog)
- self.assertEqual(result.ace, (Allow, 'barney', MEMBER_PERMS))
- result = policy.permits(blog, request, 'administer')
- self.assertEqual(result, False)
- self.assertEqual(result.context, community)
- self.assertEqual(result.ace, (Deny, Everyone, ALL_PERMISSIONS))
-
- request.principals = ['someguy']
- result = policy.permits(root, request, 'view')
- self.assertEqual(result, True)
- self.assertEqual(result.context, root)
- self.assertEqual(result.ace, (Allow, Authenticated, VIEW))
- result = policy.permits(blog, request, 'view')
- self.assertEqual(result, False)
- self.assertEqual(result.context, community)
- self.assertEqual(result.ace, (Deny, Everyone, ALL_PERMISSIONS))
-
- request.principals = []
- result = policy.permits(root, request, 'view')
- self.assertEqual(result, False)
- self.assertEqual(result.context, root)
- self.assertEqual(result.ace, None)
-
- request.principals = []
- context = DummyContext()
- result = policy.permits(context, request, 'view')
- self.assertEqual(result, False)
-
- def test_principals_allowed_by_permission_direct(self):
- from repoze.bfg.security import Allow
- from repoze.bfg.security import DENY_ALL
- context = DummyContext()
- acl = [ (Allow, 'chrism', ('read', 'write')),
- DENY_ALL,
- (Allow, 'other', 'read') ]
- context.__acl__ = acl
- policy = self._makeOne(lambda *arg: None)
- result = sorted(
- policy.principals_allowed_by_permission(context, 'read'))
- self.assertEqual(result, ['chrism'])
-
- def test_principals_allowed_by_permission(self):
- from repoze.bfg.security import Allow
- from repoze.bfg.security import Deny
- from repoze.bfg.security import DENY_ALL
- from repoze.bfg.security import ALL_PERMISSIONS
- root = DummyContext(__name__='', __parent__=None)
- community = DummyContext(__name__='community', __parent__=root)
- blog = DummyContext(__name__='blog', __parent__=community)
- root.__acl__ = [ (Allow, 'chrism', ('read', 'write')),
- (Allow, 'other', ('read',)),
- (Allow, 'jim', ALL_PERMISSIONS)]
- community.__acl__ = [ (Deny, 'flooz', 'read'),
- (Allow, 'flooz', 'read'),
- (Allow, 'mork', 'read'),
- (Deny, 'jim', 'read'),
- (Allow, 'someguy', 'manage')]
- blog.__acl__ = [ (Allow, 'fred', 'read'),
- DENY_ALL]
-
- policy = self._makeOne(lambda *arg: None)
- result = sorted(policy.principals_allowed_by_permission(blog, 'read'))
- self.assertEqual(result, ['fred'])
- result = sorted(policy.principals_allowed_by_permission(community,
- 'read'))
- self.assertEqual(result, ['chrism', 'mork', 'other'])
- result = sorted(policy.principals_allowed_by_permission(community,
- 'read'))
- result = sorted(policy.principals_allowed_by_permission(root, 'read'))
- self.assertEqual(result, ['chrism', 'jim', 'other'])
-
- def test_principals_allowed_by_permission_no_acls(self):
- policy = self._makeOne(lambda *arg: None)
- context = DummyContext()
- result = sorted(policy.principals_allowed_by_permission(context,'read'))
- self.assertEqual(result, [])
-
- def test_effective_principals(self):
- context = DummyContext()
- request = DummyRequest({})
- request.principals = ['fred']
- policy = self._makeOne(lambda request: request.principals)
- result = sorted(policy.effective_principals(request))
- from repoze.bfg.security import Everyone
- from repoze.bfg.security import Authenticated
- self.assertEqual(result,
- ['fred', Authenticated, Everyone])
-
- def test_no_effective_principals(self):
- context = DummyContext()
- request = DummyRequest({})
- request.principals = []
- policy = self._makeOne(lambda request: request.principals)
- result = sorted(policy.effective_principals(request))
- from repoze.bfg.security import Everyone
- self.assertEqual(result, [Everyone])
-
- def test_authenticated_userid(self):
- context = DummyContext()
- request = DummyRequest({})
- request.principals = ['fred']
- policy = self._makeOne(lambda request: request.principals)
- result = policy.authenticated_userid(request)
- self.assertEqual(result, 'fred')
-
- def test_no_authenticated_userid(self):
- context = DummyContext()
- request = DummyRequest({})
- request.principals = []
- policy = self._makeOne(lambda request: request.principals)
- result = policy.authenticated_userid(request)
- self.assertEqual(result, None)
-
-class TestRemoteUserACLSecurityPolicy(unittest.TestCase):
- def setUp(self):
- cleanUp()
-
- def tearDown(self):
- cleanUp()
-
- def _getTargetClass(self):
- from repoze.bfg.secpols import RemoteUserACLSecurityPolicy
- return RemoteUserACLSecurityPolicy
-
- def _makeOne(self, *arg, **kw):
- klass = self._getTargetClass()
- return klass(*arg, **kw)
-
- def test_instance_implements_ISecurityPolicy(self):
- from zope.interface.verify import verifyObject
- from repoze.bfg.interfaces import ISecurityPolicy
- verifyObject(ISecurityPolicy, self._makeOne())
-
- def test_authenticated_userid(self):
- context = DummyContext()
- request = DummyRequest({'REMOTE_USER':'fred'})
- policy = self._makeOne()
- result = policy.authenticated_userid(request)
- self.assertEqual(result, 'fred')
-
- def test_authenticated_userid_no_remote_user(self):
- context = DummyContext()
- request = DummyRequest({})
- policy = self._makeOne()
- result = policy.authenticated_userid(request)
- self.assertEqual(result, None)
-
- def test_effective_principals(self):
- context = DummyContext()
- request = DummyRequest({'REMOTE_USER':'fred'})
- policy = self._makeOne()
- result = policy.effective_principals(request)
- from repoze.bfg.security import Everyone
- from repoze.bfg.security import Authenticated
- self.assertEqual(result, [Everyone, Authenticated, 'fred'])
-
- def test_effective_principals_no_remote_user(self):
- context = DummyContext()
- request = DummyRequest({})
- policy = self._makeOne()
- result = policy.effective_principals(request)
- from repoze.bfg.security import Everyone
- self.assertEqual(result, [Everyone])
-
-class TestRemoteUserInheritingACLSecurityPolicy(TestRemoteUserACLSecurityPolicy):
- def _getTargetClass(self):
- from repoze.bfg.secpols import RemoteUserInheritingACLSecurityPolicy
- return RemoteUserInheritingACLSecurityPolicy
-
-class TestWhoACLSecurityPolicy(unittest.TestCase):
- def setUp(self):
- cleanUp()
-
- def tearDown(self):
- cleanUp()
-
- def _getTargetClass(self):
- from repoze.bfg.secpols import WhoACLSecurityPolicy
- return WhoACLSecurityPolicy
-
- def _makeOne(self, *arg, **kw):
- klass = self._getTargetClass()
- return klass(*arg, **kw)
-
- def test_instance_implements_ISecurityPolicy(self):
- from zope.interface.verify import verifyObject
- from repoze.bfg.interfaces import ISecurityPolicy
- verifyObject(ISecurityPolicy, self._makeOne())
-
- def test_authenticated_userid(self):
- context = DummyContext()
- identity = {'repoze.who.identity':{'repoze.who.userid':'fred'}}
- request = DummyRequest(identity)
- policy = self._makeOne()
- result = policy.authenticated_userid(request)
- self.assertEqual(result, 'fred')
-
- def test_authenticated_userid_no_who_ident(self):
- context = DummyContext()
- request = DummyRequest({})
- policy = self._makeOne()
- result = policy.authenticated_userid(request)
- self.assertEqual(result, None)
-
- def test_effective_principals(self):
- context = DummyContext()
- identity = {'repoze.who.identity':{'repoze.who.userid':'fred'}}
- request = DummyRequest(identity)
- policy = self._makeOne()
- result = policy.effective_principals(request)
- from repoze.bfg.security import Everyone
- from repoze.bfg.security import Authenticated
- self.assertEqual(result, [Everyone, Authenticated, 'fred'])
-
- def test_effective_principals_no_who_ident(self):
- context = DummyContext()
- request = DummyRequest({})
- policy = self._makeOne()
- result = policy.effective_principals(request)
- from repoze.bfg.security import Everyone
- self.assertEqual(result, [Everyone])
-
-class TestWhoInheritingACLSecurityPolicy(TestWhoACLSecurityPolicy):
- def _getTargetClass(self):
- from repoze.bfg.secpols import WhoInheritingACLSecurityPolicy
- return WhoInheritingACLSecurityPolicy
-
-class TestSecurityPolicyToAuthenticationPolicyAdapter(unittest.TestCase):
- def _getTargetClass(self):
- from repoze.bfg.secpols import \
- SecurityPolicyToAuthenticationPolicyAdapter
- return SecurityPolicyToAuthenticationPolicyAdapter
-
- def _makeOne(self, secpol):
- return self._getTargetClass()(secpol)
-
- def test_class_implements_IAuthenticationPolicy(self):
- from zope.interface.verify import verifyClass
- from repoze.bfg.interfaces import IAuthenticationPolicy
- verifyClass(IAuthenticationPolicy, self._getTargetClass())
-
- def test_instance_implements_IAuthenticationPolicy(self):
- from zope.interface.verify import verifyObject
- from repoze.bfg.interfaces import IAuthenticationPolicy
- verifyObject(IAuthenticationPolicy, self._makeOne(None))
-
- def test_authenticated_userid(self):
- secpol = DummySecurityPolicy(None)
- adapter = self._makeOne(secpol)
- result = adapter.authenticated_userid(None)
- self.assertEqual(result, 'fred')
-
- def test_effective_principals(self):
- secpol = DummySecurityPolicy(None)
- adapter = self._makeOne(secpol)
- result = adapter.effective_principals(None)
- self.assertEqual(result, ['fred', 'bob'])
-
- def test_remember(self):
- secpol = DummySecurityPolicy(None)
- adapter = self._makeOne(secpol)
- result = adapter.remember(None, None)
- self.assertEqual(result, [])
-
- def test_forget(self):
- secpol = DummySecurityPolicy(None)
- adapter = self._makeOne(secpol)
- result = adapter.forget(None)
- self.assertEqual(result, [])
-
-class TestSecurityPolicyToAuthorizationPolicyAdapter(unittest.TestCase):
- def _getTargetClass(self):
- from repoze.bfg.secpols import \
- SecurityPolicyToAuthorizationPolicyAdapter
- return SecurityPolicyToAuthorizationPolicyAdapter
-
- def _makeOne(self, secpol):
- return self._getTargetClass()(secpol)
-
- def test_class_implements_IAuthorizationPolicy(self):
- from zope.interface.verify import verifyClass
- from repoze.bfg.interfaces import IAuthorizationPolicy
- verifyClass(IAuthorizationPolicy, self._getTargetClass())
-
- def test_instance_implements_IAuthorizationPolicy(self):
- from zope.interface.verify import verifyObject
- from repoze.bfg.interfaces import IAuthorizationPolicy
- verifyObject(IAuthorizationPolicy, self._makeOne(None))
-
- def test_permits(self):
- from repoze.bfg.threadlocal import manager
- manager.push({'request':1})
- try:
- secpol = DummySecurityPolicy(None)
- adapter = self._makeOne(secpol)
- result = adapter.permits(None, None, None)
- self.assertEqual(result, None)
- self.assertEqual(secpol.checked, (None, 1, None))
- finally:
- manager.pop()
-
- def test_principals_allowed_by_permission(self):
- secpol = DummySecurityPolicy(None)
- adapter = self._makeOne(secpol)
- result = adapter.principals_allowed_by_permission(None, None)
- self.assertEqual(result, ['fred', 'bob'])
-
-
-
-class DummyContext:
- def __init__(self, *arg, **kw):
- self.__dict__.update(kw)
-
-class DummyRequest:
- def __init__(self, environ):
- self.environ = environ
-
-
-VIEW = 'view'
-EDIT = 'edit'
-CREATE = 'create'
-DELETE = 'delete'
-MODERATE = 'moderate'
-ADMINISTER = 'administer'
-COMMENT = 'comment'
-
-GUEST_PERMS = (VIEW, COMMENT)
-MEMBER_PERMS = GUEST_PERMS + (EDIT, CREATE, DELETE)
-MODERATOR_PERMS = MEMBER_PERMS + (MODERATE,)
-ADMINISTRATOR_PERMS = MODERATOR_PERMS + (ADMINISTER,)
-
-class DummySecurityPolicy:
- def __init__(self, result):
- self.result = result
-
- def permits(self, *args):
- self.checked = args
- return self.result
-
- def authenticated_userid(self, request):
- return 'fred'
-
- def effective_principals(self, request):
- return ['fred', 'bob']
-
- def principals_allowed_by_permission(self, context, permission):
- return ['fred', 'bob']
-
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index fdf8fa9e3..9e8c70cbd 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -1976,61 +1976,6 @@ class TestZCMLConfigure(unittest.TestCase):
self.assertRaises(IOError, self._callFUT, 'configure.zcml',
self.module)
- def test_secpol_BBB(self):
- from repoze.bfg.interfaces import IAuthorizationPolicy
- from repoze.bfg.interfaces import IAuthenticationPolicy
- from repoze.bfg.interfaces import ISecurityPolicy
- from repoze.bfg.interfaces import ILogger
- secpol = DummySecurityPolicy()
- from zope.component import getGlobalSiteManager
- gsm = getGlobalSiteManager()
- gsm.registerUtility(secpol, ISecurityPolicy)
- logger = DummyLogger()
- gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug')
- self._callFUT('configure.zcml', self.module)
- self.failUnless(gsm.queryUtility(IAuthenticationPolicy))
- self.failUnless(gsm.queryUtility(IAuthorizationPolicy))
- self.assertEqual(len(logger.messages), 1)
- self.failUnless('ISecurityPolicy' in logger.messages[0])
-
- def test_iunauthorized_appfactory_BBB(self):
- from repoze.bfg.interfaces import IUnauthorizedAppFactory
- from repoze.bfg.interfaces import IForbiddenView
- from zope.component import getGlobalSiteManager
- from repoze.bfg.interfaces import ILogger
- context = DummyContext()
- def factory():
- return 'yo'
- logger = DummyLogger()
- gsm = getGlobalSiteManager()
- gsm.registerUtility(factory, IUnauthorizedAppFactory)
- logger = DummyLogger()
- gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug')
- self._callFUT('configure.zcml', self.module)
- self.assertEqual(len(logger.messages), 1)
- self.failUnless('forbidden' in logger.messages[0])
- forbidden = gsm.getUtility(IForbiddenView)
- self.assertEqual(forbidden(None, DummyRequest()), 'yo')
-
- def test_inotfound_appfactory_BBB(self):
- from repoze.bfg.interfaces import INotFoundAppFactory
- from repoze.bfg.interfaces import INotFoundView
- from zope.component import getGlobalSiteManager
- from repoze.bfg.interfaces import ILogger
- context = DummyContext()
- def factory():
- return 'yo'
- logger = DummyLogger()
- gsm = getGlobalSiteManager()
- gsm.registerUtility(factory, INotFoundAppFactory)
- logger = DummyLogger()
- gsm.registerUtility(logger, ILogger, name='repoze.bfg.debug')
- self._callFUT('configure.zcml', self.module)
- self.assertEqual(len(logger.messages), 1)
- self.failUnless('notfound' in logger.messages[0])
- notfound = gsm.getUtility(INotFoundView)
- self.assertEqual(notfound(None,DummyRequest()), 'yo')
-
class TestBFGViewFunctionGrokker(unittest.TestCase):
def setUp(self):
cleanUp()