From 2f6bc22af62e4adfd533418b275d9815fb38f230 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Fri, 3 Jul 2009 03:24:58 +0000 Subject: - ``remoteuserauthenticationpolicy`` ZCML directive didn't work without an ``environ_key`` directive (didn't match docs). --- CHANGES.txt | 3 ++ repoze/bfg/tests/test_zcml.py | 73 ++++++++++++++++++++++++++++++++++++++++--- repoze/bfg/zcml.py | 3 +- 3 files changed, 74 insertions(+), 5 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index bba2a307f..bb7cb4314 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,9 @@ Next release ============ +- ``remoteuserauthenticationpolicy`` ZCML directive didn't work + without an ``environ_key`` directive (didn't match docs). + - Fix ``configure_zcml`` filespec check on Windows. Previously if an absolute filesystem path including a drive letter was passed as ``filename`` (or as ``configure_zcml`` in the options dict) to diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 37cdaeb61..726824152 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -584,12 +584,33 @@ class TestRepozeWho1AuthenticationPolicyDirective(unittest.TestCase): def _callFUT(self, context, **kw): from repoze.bfg.zcml import repozewho1authenticationpolicy return repozewho1authenticationpolicy(context, **kw) + + def test_it_defaults(self): + context = DummyContext() + self._callFUT(context) + 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, None) + self.assertEqual(policy.identifier_name, 'auth_tkt') + self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) def test_it(self): context = DummyContext() def callback(identity, request): """ """ - self._callFUT(context, identifier_name='auth_tkt', callback=callback) + self._callFUT(context, identifier_name='something', callback=callback) actions = context.actions from repoze.bfg.interfaces import IAuthenticationPolicy from repoze.bfg.zcml import handler @@ -603,7 +624,7 @@ class TestRepozeWho1AuthenticationPolicyDirective(unittest.TestCase): self.assertEqual(regadapt['args'][0], 'registerUtility') policy = regadapt['args'][1] self.assertEqual(policy.callback, callback) - self.assertEqual(policy.identifier_name, 'auth_tkt') + self.assertEqual(policy.identifier_name, 'something') self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) self.assertEqual(regadapt['args'][3], '') self.assertEqual(regadapt['args'][4], None) @@ -612,7 +633,30 @@ class TestRemoteUserAuthenticationPolicyDirective(unittest.TestCase): def _callFUT(self, context, **kw): from repoze.bfg.zcml import remoteuserauthenticationpolicy return remoteuserauthenticationpolicy(context, **kw) - + + def test_defaults(self): + context = DummyContext() + def callback(identity, request): + """ """ + self._callFUT(context) + 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, 'REMOTE_USER') + self.assertEqual(policy.callback, None) + self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) + def test_it(self): context = DummyContext() def callback(identity, request): @@ -640,7 +684,28 @@ class TestAuthTktAuthenticationPolicyDirective(unittest.TestCase): def _callFUT(self, context, secret, **kw): from repoze.bfg.zcml import authtktauthenticationpolicy return authtktauthenticationpolicy(context, secret, **kw) - + + def test_it_defaults(self): + context = DummyContext() + self._callFUT(context, 'sosecret') + 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, None) + self.assertEqual(regadapt['args'][2], IAuthenticationPolicy) + self.assertEqual(regadapt['args'][3], '') + self.assertEqual(regadapt['args'][4], None) + def test_it_noconfigerror(self): context = DummyContext() def callback(identity, request): diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index 4384924a7..0ce38997d 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -248,7 +248,8 @@ class IRemoteUserAuthenticationPolicyDirective(Interface): default=u'REMOTE_USER') callback = GlobalObject(title=u'callback', required=False) -def remoteuserauthenticationpolicy(_context, environ_key, callback=None): +def remoteuserauthenticationpolicy(_context, environ_key='REMOTE_USER', + callback=None): policy = RemoteUserAuthenticationPolicy(environ_key=environ_key, callback=callback) _context.action( -- cgit v1.2.3