summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-07-03 03:24:58 +0000
committerChris McDonough <chrism@agendaless.com>2009-07-03 03:24:58 +0000
commit2f6bc22af62e4adfd533418b275d9815fb38f230 (patch)
treea0d7c928857e96c54f4c4bee2c0a3b388c9fb4d1
parent7bc20e11b5ed7314e5aaed000242d4d5950fc775 (diff)
downloadpyramid-2f6bc22af62e4adfd533418b275d9815fb38f230.tar.gz
pyramid-2f6bc22af62e4adfd533418b275d9815fb38f230.tar.bz2
pyramid-2f6bc22af62e4adfd533418b275d9815fb38f230.zip
- ``remoteuserauthenticationpolicy`` ZCML directive didn't work
without an ``environ_key`` directive (didn't match docs).
-rw-r--r--CHANGES.txt3
-rw-r--r--repoze/bfg/tests/test_zcml.py73
-rw-r--r--repoze/bfg/zcml.py3
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(