summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_authentication.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-05-27 04:52:51 +0000
committerChris McDonough <chrism@agendaless.com>2009-05-27 04:52:51 +0000
commita1a9fb7128c935848b17c0ce6586991098a17f07 (patch)
tree5160f28be92202033c693caa335f8b9cda3c6379 /repoze/bfg/tests/test_authentication.py
parent08ead74d05e25f58c83712f6f8651484ddc983d0 (diff)
downloadpyramid-a1a9fb7128c935848b17c0ce6586991098a17f07.tar.gz
pyramid-a1a9fb7128c935848b17c0ce6586991098a17f07.tar.bz2
pyramid-a1a9fb7128c935848b17c0ce6586991098a17f07.zip
Merge authchanges branch to trunk.
Diffstat (limited to 'repoze/bfg/tests/test_authentication.py')
-rw-r--r--repoze/bfg/tests/test_authentication.py176
1 files changed, 176 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_authentication.py b/repoze/bfg/tests/test_authentication.py
new file mode 100644
index 000000000..a23ffeac2
--- /dev/null
+++ b/repoze/bfg/tests/test_authentication.py
@@ -0,0 +1,176 @@
+import unittest
+
+class TestRepozeWho1AuthenticationPolicy(unittest.TestCase):
+ def _getTargetClass(self):
+ from repoze.bfg.authentication import RepozeWho1AuthenticationPolicy
+ return RepozeWho1AuthenticationPolicy
+
+ def _makeOne(self):
+ return self._getTargetClass()()
+
+ 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())
+
+ def test_authenticated_userid_None(self):
+ context = DummyContext()
+ request = DummyRequest({})
+ policy = self._makeOne()
+ self.assertEqual(policy.authenticated_userid(context, request), None)
+
+ def test_authenticated_userid(self):
+ context = DummyContext()
+ request = DummyRequest(
+ {'repoze.who.identity':{'repoze.who.userid':'fred'}})
+ policy = self._makeOne()
+ self.assertEqual(policy.authenticated_userid(context, request), 'fred')
+
+ def test_effective_principals_None(self):
+ from repoze.bfg.security import Everyone
+ context = DummyContext()
+ request = DummyRequest({})
+ policy = self._makeOne()
+ self.assertEqual(policy.effective_principals(context, request),
+ [Everyone])
+
+ def test_effective_principals_userid_only(self):
+ from repoze.bfg.security import Everyone
+ from repoze.bfg.security import Authenticated
+ context = DummyContext()
+ request = DummyRequest(
+ {'repoze.who.identity':{'repoze.who.userid':'fred'}})
+ policy = self._makeOne()
+ self.assertEqual(policy.effective_principals(context, request),
+ [Everyone, Authenticated, 'fred'])
+
+ def test_effective_principals_userid_and_groups(self):
+ from repoze.bfg.security import Everyone
+ from repoze.bfg.security import Authenticated
+ context = DummyContext()
+ request = DummyRequest(
+ {'repoze.who.identity':{'repoze.who.userid':'fred',
+ 'groups':['quux', 'biz']}})
+ policy = self._makeOne()
+ self.assertEqual(policy.effective_principals(context, request),
+ [Everyone, Authenticated, 'fred', 'quux', 'biz'])
+
+ def test_remember_no_plugins(self):
+ context = DummyContext()
+ authtkt = DummyPlugin()
+ request = DummyRequest({})
+ policy = self._makeOne()
+ result = policy.remember(context, request, 'fred')
+ self.assertEqual(result, [])
+
+ def test_remember(self):
+ context = DummyContext()
+ authtkt = DummyPlugin()
+ request = DummyRequest(
+ {'repoze.who.plugins':{'auth_tkt':authtkt}})
+ policy = self._makeOne()
+ result = policy.remember(context, request, 'fred')
+ self.assertEqual(result[0], request.environ)
+ self.assertEqual(result[1], {'repoze.who.userid':'fred'})
+
+ def test_forget_no_plugins(self):
+ context = DummyContext()
+ authtkt = DummyPlugin()
+ request = DummyRequest({})
+ policy = self._makeOne()
+ result = policy.forget(context, request)
+ self.assertEqual(result, [])
+
+ def test_forget(self):
+ context = DummyContext()
+ authtkt = DummyPlugin()
+ request = DummyRequest(
+ {'repoze.who.plugins':{'auth_tkt':authtkt},
+ 'repoze.who.identity':{'repoze.who.userid':'fred'},
+ })
+ policy = self._makeOne()
+ result = policy.forget(context, request)
+ self.assertEqual(result[0], request.environ)
+ self.assertEqual(result[1], request.environ['repoze.who.identity'])
+
+class TestRemoteUserAuthenticationPolicy(unittest.TestCase):
+ def _getTargetClass(self):
+ from repoze.bfg.authentication import RemoteUserAuthenticationPolicy
+ return RemoteUserAuthenticationPolicy
+
+ def _makeOne(self):
+ return self._getTargetClass()()
+
+ 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())
+
+ def test_authenticated_userid_None(self):
+ context = DummyContext()
+ request = DummyRequest({})
+ policy = self._makeOne()
+ self.assertEqual(policy.authenticated_userid(context, request), None)
+
+ def test_authenticated_userid(self):
+ context = DummyContext()
+ request = DummyRequest({'REMOTE_USER':'fred'})
+ policy = self._makeOne()
+ self.assertEqual(policy.authenticated_userid(context, request), 'fred')
+
+ def test_effective_principals_None(self):
+ from repoze.bfg.security import Everyone
+ context = DummyContext()
+ request = DummyRequest({})
+ policy = self._makeOne()
+ self.assertEqual(policy.effective_principals(context, request),
+ [Everyone])
+
+ def test_effective_principals(self):
+ from repoze.bfg.security import Everyone
+ from repoze.bfg.security import Authenticated
+ context = DummyContext()
+ request = DummyRequest({'REMOTE_USER':'fred'})
+ policy = self._makeOne()
+ self.assertEqual(policy.effective_principals(context, request),
+ [Everyone, Authenticated, 'fred'])
+
+ def test_remember(self):
+ context = DummyContext()
+ authtkt = DummyPlugin()
+ request = DummyRequest({'REMOTE_USER':'fred'})
+ policy = self._makeOne()
+ result = policy.remember(context, request, 'fred')
+ self.assertEqual(result, [])
+
+ def test_forget(self):
+ context = DummyContext()
+ authtkt = DummyPlugin()
+ request = DummyRequest({'REMOTE_USER':'fred'})
+ policy = self._makeOne()
+ result = policy.forget(context, request)
+ self.assertEqual(result, [])
+
+class DummyContext:
+ pass
+
+class DummyRequest:
+ def __init__(self, environ):
+ self.environ = environ
+
+class DummyPlugin:
+ def remember(self, environ, identity):
+ return environ, identity
+
+ def forget(self, environ, identity):
+ return environ, identity