summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_security.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-20 08:41:08 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-20 08:41:08 +0000
commitb54cdb6d0951a28b7d7bf4f585a4059cc5e6b18a (patch)
tree0b600c099bdec04c46c13512689c59c9ec8dadac /repoze/bfg/tests/test_security.py
parentae0b3f07e3e6b8d6cde11ddf2fead38b7fc8dfd3 (diff)
downloadpyramid-b54cdb6d0951a28b7d7bf4f585a4059cc5e6b18a.tar.gz
pyramid-b54cdb6d0951a28b7d7bf4f585a4059cc5e6b18a.tar.bz2
pyramid-b54cdb6d0951a28b7d7bf4f585a4059cc5e6b18a.zip
- Add API functions for authenticated_userid and effective_principals.
Diffstat (limited to 'repoze/bfg/tests/test_security.py')
-rw-r--r--repoze/bfg/tests/test_security.py58
1 files changed, 50 insertions, 8 deletions
diff --git a/repoze/bfg/tests/test_security.py b/repoze/bfg/tests/test_security.py
index d0bb5dcaa..6d85e2160 100644
--- a/repoze/bfg/tests/test_security.py
+++ b/repoze/bfg/tests/test_security.py
@@ -225,6 +225,17 @@ class RemoteUserACLSecurityPolicy(unittest.TestCase, PlacelessSetup):
def tearDown(self):
PlacelessSetup.tearDown(self)
+ def test_instance_implements_ISecurityPolicy(self):
+ from zope.interface.verify import verifyObject
+ from repoze.bfg.interfaces import ISecurityPolicy
+ logger = DummyLogger()
+ verifyObject(ISecurityPolicy, self._makeOne(logger))
+
+ def test_class_implements_ISecurityPolicy(self):
+ from zope.interface.verify import verifyClass
+ from repoze.bfg.interfaces import ISecurityPolicy
+ verifyClass(ISecurityPolicy, self._getTargetClass())
+
def test_authenticated_userid(self):
context = DummyContext()
request = DummyRequest({'REMOTE_USER':'fred'})
@@ -311,10 +322,12 @@ class RemoteUserACLSecurityPolicy(unittest.TestCase, PlacelessSetup):
self.assertEqual(authorizer_factory.permission, 'view')
self.assertEqual(authorizer_factory.context, context)
-class TestHasPermission(unittest.TestCase):
- def _getFUT(self):
- from repoze.bfg.security import has_permission
- return has_permission
+class TestAPIFunctions(unittest.TestCase, PlacelessSetup):
+ def setUp(self):
+ PlacelessSetup.setUp(self)
+
+ def tearDown(self):
+ PlacelessSetup.tearDown(self)
def _registerSecurityPolicy(self, secpol):
import zope.component
@@ -322,16 +335,39 @@ class TestHasPermission(unittest.TestCase):
from repoze.bfg.interfaces import ISecurityPolicy
gsm.registerUtility(secpol, ISecurityPolicy)
- def test_registered(self):
+ def test_has_permission_registered(self):
secpol = DummySecurityPolicy(False)
self._registerSecurityPolicy(secpol)
- has_permission = self._getFUT()
+ from repoze.bfg.security import has_permission
self.assertEqual(has_permission('view', None, None), False)
- def test_not_registered(self):
- has_permission = self._getFUT()
+ def test_has_permission_not_registered(self):
+ from repoze.bfg.security import has_permission
self.assertEqual(has_permission('view', None, None), True)
+ def test_authenticated_userid_registered(self):
+ secpol = DummySecurityPolicy(False)
+ self._registerSecurityPolicy(secpol)
+ from repoze.bfg.security import authenticated_userid
+ request = DummyRequest({})
+ self.assertEqual(authenticated_userid(request), 'fred')
+
+ def test_authenticated_userid_not_registered(self):
+ from repoze.bfg.security import authenticated_userid
+ request = DummyRequest({})
+ self.assertEqual(authenticated_userid(request), None)
+
+ def test_effective_principals_registered(self):
+ secpol = DummySecurityPolicy(False)
+ self._registerSecurityPolicy(secpol)
+ from repoze.bfg.security import effective_principals
+ request = DummyRequest({})
+ self.assertEqual(effective_principals(request), ['fred', 'bob'])
+
+ def test_effective_principals_not_registered(self):
+ from repoze.bfg.security import effective_principals
+ request = DummyRequest({})
+ self.assertEqual(effective_principals(request), [])
class TestViewPermission(unittest.TestCase):
def _getTargetClass(self):
@@ -384,6 +420,12 @@ class DummySecurityPolicy:
self.checked = args
return self.result
+ def authenticated_userid(self, request):
+ return 'fred'
+
+ def effective_principals(self, request):
+ return ['fred', 'bob']
+
class DummyLogger:
def __init__(self):
self.messages = []