diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-07-01 06:46:05 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-07-01 06:46:05 +0000 |
| commit | dd7614a8e486735b7106331ca6b86229115de249 (patch) | |
| tree | 98b2f9087fb5b13367dca3abd0b5683559695535 /repoze/bfg/tests | |
| parent | 4e87068fe858c116e6d648fa8b21d4c70ddd87eb (diff) | |
| download | pyramid-dd7614a8e486735b7106331ca6b86229115de249.tar.gz pyramid-dd7614a8e486735b7106331ca6b86229115de249.tar.bz2 pyramid-dd7614a8e486735b7106331ca6b86229115de249.zip | |
- Add three new ZCML directives which configure authentication
policies:
- ``repozewho1authenticationpolicy``
- ``remoteuserauthenticationpolicy``
- ``authtktauthenticationpolicy``
- Add a new ZCML directive which configures an ACL authorization
policy named ``aclauthorizationpolicy``.
Diffstat (limited to 'repoze/bfg/tests')
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 129 |
1 files changed, 128 insertions, 1 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index cb841013d..37cdaeb61 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -579,7 +579,134 @@ class TestForbiddenDirective(unittest.TestCase): self.assertEqual(regadapt['args'][2], IForbiddenView) self.assertEqual(regadapt['args'][3], '') self.assertEqual(regadapt['args'][4], None) - + +class TestRepozeWho1AuthenticationPolicyDirective(unittest.TestCase): + def _callFUT(self, context, **kw): + from repoze.bfg.zcml import repozewho1authenticationpolicy + return repozewho1authenticationpolicy(context, **kw) + + def test_it(self): + context = DummyContext() + def callback(identity, request): + """ """ + self._callFUT(context, identifier_name='auth_tkt', callback=callback) + actions = context.actions + from repoze.bfg.interfaces import IAuthenticationPolicy + from repoze.bfg.zcml import handler + + self.assertEqual(len(actions), 1) + + regadapt = actions[0] + regadapt_discriminator = 'authentication_policy' + self.assertEqual(regadapt['discriminator'], regadapt_discriminator) + self.assertEqual(regadapt['callable'], handler) + self.assertEqual(regadapt['args'][0], 'registerUtility') + policy = regadapt['args'][1] + self.assertEqual(policy.callback, callback) + self.assertEqual(policy.identifier_name, 'auth_tkt') + self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) + +class TestRemoteUserAuthenticationPolicyDirective(unittest.TestCase): + def _callFUT(self, context, **kw): + from repoze.bfg.zcml import remoteuserauthenticationpolicy + return remoteuserauthenticationpolicy(context, **kw) + + def test_it(self): + context = DummyContext() + def callback(identity, request): + """ """ + self._callFUT(context, environ_key='BLAH', callback=callback) + actions = context.actions + from repoze.bfg.interfaces import IAuthenticationPolicy + from repoze.bfg.zcml import handler + + self.assertEqual(len(actions), 1) + + regadapt = actions[0] + regadapt_discriminator = 'authentication_policy' + self.assertEqual(regadapt['discriminator'], regadapt_discriminator) + self.assertEqual(regadapt['callable'], handler) + self.assertEqual(regadapt['args'][0], 'registerUtility') + policy = regadapt['args'][1] + self.assertEqual(policy.environ_key, 'BLAH') + self.assertEqual(policy.callback, callback) + self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) + +class TestAuthTktAuthenticationPolicyDirective(unittest.TestCase): + def _callFUT(self, context, secret, **kw): + from repoze.bfg.zcml import authtktauthenticationpolicy + return authtktauthenticationpolicy(context, secret, **kw) + + def test_it_noconfigerror(self): + context = DummyContext() + def callback(identity, request): + """ """ + self._callFUT(context, 'sosecret', callback=callback, + cookie_name='repoze.bfg.auth_tkt', + secure=True, include_ip=True, timeout=100, + reissue_time=60) + actions = context.actions + from repoze.bfg.interfaces import IAuthenticationPolicy + from repoze.bfg.zcml import handler + + self.assertEqual(len(actions), 1) + + regadapt = actions[0] + regadapt_discriminator = 'authentication_policy' + self.assertEqual(regadapt['discriminator'], regadapt_discriminator) + self.assertEqual(regadapt['callable'], handler) + self.assertEqual(regadapt['args'][0], 'registerUtility') + policy = regadapt['args'][1] + self.assertEqual(policy.cookie.secret, 'sosecret') + self.assertEqual(policy.callback, callback) + self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) + + def test_it_configerror(self): + from zope.configuration.exceptions import ConfigurationError + context = DummyContext() + def callback(identity, request): + """ """ + self.assertRaises(ConfigurationError, + self._callFUT, + context, 'sosecret', callback=callback, + cookie_name='repoze.bfg.auth_tkt', + secure=True, include_ip=True, timeout=100, + reissue_time=500) + +class TestACLAuthorizationPolicyDirective(unittest.TestCase): + def _callFUT(self, context, **kw): + from repoze.bfg.zcml import aclauthorizationpolicy + return aclauthorizationpolicy(context, **kw) + + def test_it(self): + from repoze.bfg.authorization import ACLAuthorizationPolicy + from repoze.bfg.interfaces import IAuthorizationPolicy + from repoze.bfg.zcml import handler + context = DummyContext() + def callback(identity, request): + """ """ + self._callFUT(context) + actions = context.actions + + self.assertEqual(len(actions), 1) + + regadapt = actions[0] + regadapt_discriminator = 'authorization_policy' + self.assertEqual(regadapt['discriminator'], regadapt_discriminator) + self.assertEqual(regadapt['callable'], handler) + self.assertEqual(regadapt['args'][0], 'registerUtility') + policy = regadapt['args'][1] + self.assertEqual(policy.__class__, ACLAuthorizationPolicy) + self.assertEqual(regadapt['args'][2], IAuthorizationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) + class TestDeriveView(unittest.TestCase): def _callFUT(self, view): from repoze.bfg.zcml import derive_view |
