summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt15
-rw-r--r--docs/tutorials/bfgwiki/authorization.rst2
-rw-r--r--docs/tutorials/bfgwiki/src/authorization/tutorial/login.py9
-rw-r--r--docs/tutorials/bfgwiki/src/authorization/tutorial/views.py2
-rw-r--r--repoze/bfg/authentication.py28
-rw-r--r--repoze/bfg/interfaces.py8
-rw-r--r--repoze/bfg/secpols.py8
-rw-r--r--repoze/bfg/security.py54
-rw-r--r--repoze/bfg/testing.py42
-rw-r--r--repoze/bfg/tests/test_authentication.py83
-rw-r--r--repoze/bfg/tests/test_secpols.py44
-rw-r--r--repoze/bfg/tests/test_security.py39
-rw-r--r--repoze/bfg/tests/test_testing.py10
13 files changed, 122 insertions, 222 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 95fa3dbe8..ea951c3a6 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,14 @@
+Next release
+============
+
+Features
+--------
+
+- Remove "context" argument from ``effective_principals`` and
+ ``authenticated_userid`` function APIs in ``repoze.bfg.security``,
+ effectively a doing reversion to 0.8 and before behavior. Both
+ functions now again accept only the ``request`` parameter.
+
0.9a6 (2009-05-29)
==================
@@ -253,7 +264,9 @@ Deprecations
``repoze.bfg.security`` used to only take a single argument
(request). They now accept two arguments (``context`` and
``request``). Calling them with a single argument is still
- supported but issues a deprecation warning.
+ supported but issues a deprecation warning. (NOTE: this change was
+ reverted in 0.9a7; meaning the 0.9 versions of these functions
+ again accept ``request`` only, just like 0.8 and before).
- Use of "old-style" security policies (those base on ISecurityPolicy)
is now deprecated. See the "Security" chapter of the docs for info
diff --git a/docs/tutorials/bfgwiki/authorization.rst b/docs/tutorials/bfgwiki/authorization.rst
index d69bec8a7..437cb9c74 100644
--- a/docs/tutorials/bfgwiki/authorization.rst
+++ b/docs/tutorials/bfgwiki/authorization.rst
@@ -71,7 +71,7 @@ into its template. We'll add something like this to each view body:
.. code-block:: python
:linenos:
- logged_in = authenticated_user(context, request)
+ logged_in = authenticated_user(request)
We'll then change the return value of ``render_template_to_response``
to pass the `resulting `logged_in`` value to the template, e.g.:
diff --git a/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py b/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py
index c4c595e81..5fc94d480 100644
--- a/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py
+++ b/docs/tutorials/bfgwiki/src/authorization/tutorial/login.py
@@ -1,11 +1,12 @@
from webob.exc import HTTPFound
from repoze.bfg.chameleon_zpt import render_template_to_response
-from repoze.bfg.security import remember
-from repoze.bfg.security import forget
from repoze.bfg.view import bfg_view
from repoze.bfg.url import model_url
+from repoze.bfg.security import remember
+from repoze.bfg.security import forget
+
from tutorial.models import Wiki
from tutorial.run import USERS
@@ -20,7 +21,7 @@ def login(context, request):
login = request.params['login']
password = request.params['password']
if USERS.get(login) == password:
- headers = remember(context, request, login)
+ headers = remember(request, login)
return HTTPFound(location = came_from,
headers = headers)
message = 'Failed login'
@@ -37,7 +38,7 @@ def login(context, request):
@bfg_view(for_=Wiki, name='logout')
def logout(context, request):
- headers = forget(context, request)
+ headers = forget(request)
return HTTPFound(location = model_url(context, request),
headers = headers)
diff --git a/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py b/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py
index 1d3e57de3..c8c02e57e 100644
--- a/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py
+++ b/docs/tutorials/bfgwiki/src/authorization/tutorial/views.py
@@ -44,7 +44,7 @@ def view_page(context, request):
content = wikiwords.sub(check, content)
edit_url = model_url(context, request, 'edit_page')
- logged_in = authenticated_userid(context, request)
+ logged_in = authenticated_userid(request)
return render_template_to_response('templates/view.pt',
request = request,
diff --git a/repoze/bfg/authentication.py b/repoze/bfg/authentication.py
index 849653948..6be27f47e 100644
--- a/repoze/bfg/authentication.py
+++ b/repoze/bfg/authentication.py
@@ -1,17 +1,9 @@
from codecs import utf_8_decode
from codecs import utf_8_encode
-import crypt
-import os
-import stat
-import StringIO
-import time
-import traceback
-
from paste.request import get_cookies
from paste.auth import auth_tkt
from zope.interface import implements
-from zope.component import queryUtility
from repoze.bfg.interfaces import IAuthenticationPolicy
from repoze.bfg.security import Everyone
@@ -19,7 +11,7 @@ from repoze.bfg.security import Authenticated
class CallbackAuthenticationPolicy(object):
""" Abstract class """
- def authenticated_userid(self, context, request):
+ def authenticated_userid(self, request):
userid = self._get_userid(request)
if userid is None:
return None
@@ -28,7 +20,7 @@ class CallbackAuthenticationPolicy(object):
if self.callback(userid) is not None: # is not None!
return userid
- def effective_principals(self, context, request):
+ def effective_principals(self, request):
effective_principals = [Everyone]
userid = self._get_userid(request)
if userid is None:
@@ -83,7 +75,7 @@ class RepozeWho1AuthenticationPolicy(CallbackAuthenticationPolicy):
identifier = plugins[self.identifier_name]
return identifier
- def authenticated_userid(self, context, request):
+ def authenticated_userid(self, request):
identity = self._get_identity(request)
if identity is None:
return None
@@ -92,7 +84,7 @@ class RepozeWho1AuthenticationPolicy(CallbackAuthenticationPolicy):
if self.callback(identity) is not None: # is not None!
return identity['repoze.who.userid']
- def effective_principals(self, context, request):
+ def effective_principals(self, request):
effective_principals = [Everyone]
identity = self._get_identity(request)
if identity is None:
@@ -110,7 +102,7 @@ class RepozeWho1AuthenticationPolicy(CallbackAuthenticationPolicy):
return effective_principals
- def remember(self, context, request, principal, **kw):
+ def remember(self, request, principal, **kw):
identifier = self._get_identifier(request)
if identifier is None:
return []
@@ -118,7 +110,7 @@ class RepozeWho1AuthenticationPolicy(CallbackAuthenticationPolicy):
identity = {'repoze.who.userid':principal}
return identifier.remember(environ, identity)
- def forget(self, context, request):
+ def forget(self, request):
identifier = self._get_identifier(request)
if identifier is None:
return []
@@ -152,10 +144,10 @@ class RemoteUserAuthenticationPolicy(CallbackAuthenticationPolicy):
def _get_userid(self, request):
return request.environ.get(self.environ_key)
- def remember(self, context, request, principal, **kw):
+ def remember(self, request, principal, **kw):
return []
- def forget(self, context, request):
+ def forget(self, request):
return []
class AuthTktAuthenticationPolicy(CallbackAuthenticationPolicy):
@@ -212,10 +204,10 @@ class AuthTktAuthenticationPolicy(CallbackAuthenticationPolicy):
if result:
return result['userid']
- def remember(self, context, request, principal, **kw):
+ def remember(self, request, principal, **kw):
return self.cookie.remember(request, principal)
- def forget(self, context, request):
+ def forget(self, request):
return self.cookie.forget(request)
class AuthTktCookieHelper(object):
diff --git a/repoze/bfg/interfaces.py b/repoze/bfg/interfaces.py
index 282e3756a..bc91c6b0e 100644
--- a/repoze/bfg/interfaces.py
+++ b/repoze/bfg/interfaces.py
@@ -213,23 +213,23 @@ class IRoutesContextFactory(Interface):
class IAuthenticationPolicy(Interface):
""" An object representing a BFG authentication policy. """
- def authenticated_userid(context, request):
+ def authenticated_userid(request):
""" Return the authenticated userid or ``None`` if no
authenticated userid can be found. """
- def effective_principals(context, request):
+ def effective_principals(request):
""" Return a sequence representing the effective principals
including the userid and any groups belonged to by the current
user, including 'system' groups such as Everyone and
Authenticated. """
- def remember(context, request, principal, **kw):
+ def remember(request, principal, **kw):
""" Return a set of headers suitable for 'remembering' the
principal named ``principal`` when set in a response. An
individual authentication policy and its consumers can decide
on the composition and meaning of **kw. """
- def forget(context, request):
+ def forget(request):
""" Return a set of headers suitable for 'forgetting' the
current user on subsequent requests. """
diff --git a/repoze/bfg/secpols.py b/repoze/bfg/secpols.py
index 0f0fc7e66..a34bcae77 100644
--- a/repoze/bfg/secpols.py
+++ b/repoze/bfg/secpols.py
@@ -446,16 +446,16 @@ class SecurityPolicyToAuthenticationPolicyAdapter(object):
def __init__(self, secpol):
self.secpol = secpol
- def authenticated_userid(self, context, request):
+ def authenticated_userid(self, request):
return self.secpol.authenticated_userid(request)
- def effective_principals(self, context, request):
+ def effective_principals(self, request):
return self.secpol.effective_principals(request)
- def remember(self, context, request, principal, **kw):
+ def remember(self, request, principal, **kw):
return []
- def forget(self, context, request):
+ def forget(self, request):
return []
def registerBBBAuthn(secpol, registry):
diff --git a/repoze/bfg/security.py b/repoze/bfg/security.py
index f72f6eb7d..edf9bc90a 100644
--- a/repoze/bfg/security.py
+++ b/repoze/bfg/security.py
@@ -1,5 +1,3 @@
-import warnings
-
from zope.component import queryMultiAdapter
from zope.component import queryUtility
from zope.deprecation import deprecated
@@ -45,64 +43,30 @@ def has_permission(permission, context, request):
if authz_policy is None:
raise ValueError('Authentication policy registered without '
'authorization policy') # should never happen
- principals = authn_policy.effective_principals(context, request)
+ principals = authn_policy.effective_principals(request)
return authz_policy.permits(context, principals, permission)
-def authenticated_userid(*args):
+def authenticated_userid(request):
""" Return the userid of the currently authenticated user or
``None`` if there is no authentication policy in effect or there
is no currently authenticated user. """
- largs = len(args)
- if largs > 2:
- raise TypeError(args)
- if largs == 1:
- request = args[0]
- context = None
- warnings.warn(
- 'As of BFG 0.9, the "repoze.bfg.security.authenticated_userid" '
- 'API now takes two arguments: "context" and "request". '
- 'It is being called it with a single argument'
- '(assumed to be a request). In a future version, the '
- '"authenticated_userid API will stop accepting calls with a '
- 'single argument; please fix the calling code.',
- stacklevel=2)
- else:
- context, request = args
-
policy = queryUtility(IAuthenticationPolicy)
if policy is None:
return None
- return policy.authenticated_userid(context, request)
+ return policy.authenticated_userid(request)
-def effective_principals(*args):
+def effective_principals(request):
""" Return the list of 'effective' principal identifiers for the
request. This will include the userid of the currently
authenticated user if a user is currently authenticated. If no
authentication policy is in effect, this will return an empty
sequence."""
- largs = len(args)
- if largs > 2:
- raise TypeError(args)
- if largs == 1:
- request = args[0]
- context = None
- warnings.warn(
- 'As of BFG 0.9, the "repoze.bfg.security.effective_principals " '
- 'API now takes two arguments: "context" and "request". '
- 'It is being called it with a single argument'
- '(assumed to be a request). In a future version, the '
- '"effective_principals API will stop accepting calls with a '
- 'single argument; please fix the calling code.',
- stacklevel=2)
- else:
- context, request = args
-
policy = queryUtility(IAuthenticationPolicy)
if policy is None:
return []
- return policy.effective_principals(context, request)
+ return policy.effective_principals(request)
def principals_allowed_by_permission(context, permission):
""" Provided a context (a model object), and a permission (a
@@ -138,7 +102,7 @@ def view_execution_permitted(context, request, name=''):
(name, context))
return result
-def remember(context, request, principal, **kw):
+def remember(request, principal, **kw):
""" Return a sequence of header tuples (e.g. ``[('Set-Cookie',
'foo=abc')]``) suitable for 'remembering' a set of credentials
implied by the data passed as ``principal`` and ``*kw`` using the
@@ -160,9 +124,9 @@ def remember(context, request, principal, **kw):
if policy is None:
return []
else:
- return policy.remember(context, request, principal, **kw)
+ return policy.remember(request, principal, **kw)
-def forget(context, request):
+def forget(request):
""" Return a sequence of header tuples (e.g. ``[('Set-Cookie',
'foo=abc')]``) suitable for 'forgetting' the set of credentials
possessed by the currently authenticated user. A common usage
@@ -181,7 +145,7 @@ def forget(context, request):
if policy is None:
return []
else:
- return policy.forget(context, request)
+ return policy.forget(request)
class PermitsResult(int):
def __new__(cls, s, *args):
diff --git a/repoze/bfg/testing.py b/repoze/bfg/testing.py
index bd3104a9d..a663ddc25 100644
--- a/repoze/bfg/testing.py
+++ b/repoze/bfg/testing.py
@@ -5,7 +5,7 @@ from zope.interface import implements
from repoze.bfg.interfaces import IRequest
-_marker = []
+_marker = object()
def registerDummySecurityPolicy(userid=None, groupids=(), permissive=True):
""" Registers a dummy ``repoze.bfg`` security policy (actually, a
@@ -36,8 +36,19 @@ def registerModels(models):
value will be returned to ``find_model`` (and thus to your code)
when ``find_model`` is called with an equivalent path string or
tuple."""
- traverser = make_traverser_factory(models)
- registerTraverserFactory(traverser)
+ class DummyTraverserFactory:
+ def __init__(self, context):
+ self.context = context
+
+ def __call__(self, environ):
+ path = environ['PATH_INFO']
+ ob = models[path]
+ from repoze.bfg.traversal import traversal_path
+ traversed = list(traversal_path(path))
+ return {'context':ob, 'view_name':'','subpath':[],
+ 'traversed':traversed, 'vroot':ob, 'vroot_path':[]}
+
+ registerTraverserFactory(DummyTraverserFactory)
return models
def registerEventListener(event_iface=Interface):
@@ -176,10 +187,10 @@ class DummySecurityPolicy:
self.groupids = groupids
self.permissive = permissive
- def authenticated_userid(self, context, request):
+ def authenticated_userid(self, request):
return self.userid
- def effective_principals(self, context, request):
+ def effective_principals(self, request):
from repoze.bfg.security import Everyone
from repoze.bfg.security import Authenticated
effective_principals = [Everyone]
@@ -189,32 +200,17 @@ class DummySecurityPolicy:
effective_principals.extend(self.groupids)
return effective_principals
- def remember(self, context, request, principal, **kw):
+ def remember(self, request, principal, **kw):
return []
- def forget(self, context, request):
+ def forget(self, request):
return []
def permits(self, context, principals, permission):
return self.permissive
def principals_allowed_by_permission(self, context, permission):
- return self.effective_principals(None, None)
-
-def make_traverser_factory(root):
- class DummyTraverserFactory:
- def __init__(self, context):
- self.context = context
-
- def __call__(self, environ):
- path = environ['PATH_INFO']
- ob = root[path]
- from repoze.bfg.traversal import traversal_path
- traversed = list(traversal_path(path))
- return {'context':ob, 'view_name':'','subpath':[],
- 'traversed':traversed, 'vroot':ob, 'vroot_path':[]}
-
- return DummyTraverserFactory
+ return self.effective_principals(None)
class DummyTemplateRenderer:
"""
diff --git a/repoze/bfg/tests/test_authentication.py b/repoze/bfg/tests/test_authentication.py
index b0b1e084a..09782cd3c 100644
--- a/repoze/bfg/tests/test_authentication.py
+++ b/repoze/bfg/tests/test_authentication.py
@@ -19,114 +19,100 @@ class TestRepozeWho1AuthenticationPolicy(unittest.TestCase):
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)
+ self.assertEqual(policy.authenticated_userid(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')
+ self.assertEqual(policy.authenticated_userid(request), 'fred')
def test_authenticated_userid_with_callback_returns_None(self):
- context = DummyContext()
request = DummyRequest(
{'repoze.who.identity':{'repoze.who.userid':'fred'}})
def callback(identity):
return None
policy = self._makeOne(callback=callback)
- self.assertEqual(policy.authenticated_userid(context, request), None)
+ self.assertEqual(policy.authenticated_userid(request), None)
def test_authenticated_userid_with_callback_returns_something(self):
- context = DummyContext()
request = DummyRequest(
{'repoze.who.identity':{'repoze.who.userid':'fred'}})
def callback(identity):
return ['agroup']
policy = self._makeOne(callback=callback)
- self.assertEqual(policy.authenticated_userid(context, request), 'fred')
+ self.assertEqual(policy.authenticated_userid(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])
+ self.assertEqual(policy.effective_principals(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),
+ self.assertEqual(policy.effective_principals(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']}})
def callback(identity):
return identity['groups']
policy = self._makeOne(callback=callback)
- self.assertEqual(policy.effective_principals(context, request),
+ self.assertEqual(policy.effective_principals(request),
[Everyone, Authenticated, 'fred', 'quux', 'biz'])
def test_effective_principals_userid_callback_returns_None(self):
from repoze.bfg.security import Everyone
- context = DummyContext()
request = DummyRequest(
{'repoze.who.identity':{'repoze.who.userid':'fred',
'groups':['quux', 'biz']}})
def callback(identity):
return None
policy = self._makeOne(callback=callback)
- self.assertEqual(policy.effective_principals(context, request),
- [Everyone])
+ self.assertEqual(policy.effective_principals(request), [Everyone])
def test_remember_no_plugins(self):
- context = DummyContext()
authtkt = DummyWhoPlugin()
request = DummyRequest({})
policy = self._makeOne()
- result = policy.remember(context, request, 'fred')
+ result = policy.remember(request, 'fred')
self.assertEqual(result, [])
def test_remember(self):
- context = DummyContext()
authtkt = DummyWhoPlugin()
request = DummyRequest(
{'repoze.who.plugins':{'auth_tkt':authtkt}})
policy = self._makeOne()
- result = policy.remember(context, request, 'fred')
+ result = policy.remember(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 = DummyWhoPlugin()
request = DummyRequest({})
policy = self._makeOne()
- result = policy.forget(context, request)
+ result = policy.forget(request)
self.assertEqual(result, [])
def test_forget(self):
- context = DummyContext()
authtkt = DummyWhoPlugin()
request = DummyRequest(
{'repoze.who.plugins':{'auth_tkt':authtkt},
'repoze.who.identity':{'repoze.who.userid':'fred'},
})
policy = self._makeOne()
- result = policy.forget(context, request)
+ result = policy.forget(request)
self.assertEqual(result[0], request.environ)
self.assertEqual(result[1], request.environ['repoze.who.identity'])
@@ -149,48 +135,41 @@ class TestRemoteUserAuthenticationPolicy(unittest.TestCase):
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)
+ self.assertEqual(policy.authenticated_userid(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')
+ self.assertEqual(policy.authenticated_userid(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])
+ self.assertEqual(policy.effective_principals(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),
+ self.assertEqual(policy.effective_principals(request),
[Everyone, Authenticated, 'fred'])
def test_remember(self):
- context = DummyContext()
authtkt = DummyWhoPlugin()
request = DummyRequest({'REMOTE_USER':'fred'})
policy = self._makeOne()
- result = policy.remember(context, request, 'fred')
+ result = policy.remember(request, 'fred')
self.assertEqual(result, [])
def test_forget(self):
- context = DummyContext()
authtkt = DummyWhoPlugin()
request = DummyRequest({'REMOTE_USER':'fred'})
policy = self._makeOne()
- result = policy.forget(context, request)
+ result = policy.forget(request)
self.assertEqual(result, [])
class TestAutkTktAuthenticationPolicy(unittest.TestCase):
@@ -214,68 +193,58 @@ class TestAutkTktAuthenticationPolicy(unittest.TestCase):
verifyObject(IAuthenticationPolicy, self._makeOne(None, None))
def test_authenticated_userid_no_cookie_identity(self):
- context = DummyContext()
request = DummyRequest({})
policy = self._makeOne(None, None)
- self.assertEqual(policy.authenticated_userid(context, request), None)
+ self.assertEqual(policy.authenticated_userid(request), None)
def test_authenticated_userid_callback_returns_None(self):
- context = DummyContext()
request = DummyRequest({})
def callback(userid):
return None
policy = self._makeOne(callback, {'userid':'fred'})
- self.assertEqual(policy.authenticated_userid(context, request), None)
+ self.assertEqual(policy.authenticated_userid(request), None)
def test_authenticated_userid(self):
- context = DummyContext()
request = DummyRequest({})
def callback(userid):
return True
policy = self._makeOne(callback, {'userid':'fred'})
- self.assertEqual(policy.authenticated_userid(context, request), 'fred')
+ self.assertEqual(policy.authenticated_userid(request), 'fred')
def test_effective_principals_no_cookie_identity(self):
from repoze.bfg.security import Everyone
- context = DummyContext()
request = DummyRequest({})
policy = self._makeOne(None, None)
- self.assertEqual(policy.effective_principals(context, request),
- [Everyone])
+ self.assertEqual(policy.effective_principals(request), [Everyone])
def test_effective_principals_callback_returns_None(self):
from repoze.bfg.security import Everyone
- context = DummyContext()
request = DummyRequest({})
def callback(userid):
return None
policy = self._makeOne(callback, {'userid':'fred'})
- self.assertEqual(policy.effective_principals(context, request),
- [Everyone])
+ self.assertEqual(policy.effective_principals(request), [Everyone])
def test_effective_principals(self):
from repoze.bfg.security import Everyone
from repoze.bfg.security import Authenticated
- context = DummyContext()
request = DummyRequest({})
def callback(userid):
return ['group.foo']
policy = self._makeOne(callback, {'userid':'fred'})
- self.assertEqual(policy.effective_principals(context, request),
+ self.assertEqual(policy.effective_principals(request),
[Everyone, Authenticated, 'fred', 'group.foo'])
def test_remember(self):
- context = DummyContext()
request = DummyRequest({})
policy = self._makeOne(None, None)
- result = policy.remember(context, request, 'fred')
+ result = policy.remember(request, 'fred')
self.assertEqual(result, [])
def test_forget(self):
- context = DummyContext()
request = DummyRequest({})
policy = self._makeOne(None, None)
- result = policy.forget(context, request)
+ result = policy.forget(request)
self.assertEqual(result, [])
class TestAuthTktCookieHelper(unittest.TestCase):
diff --git a/repoze/bfg/tests/test_secpols.py b/repoze/bfg/tests/test_secpols.py
index 2b0449e89..8f60a0d94 100644
--- a/repoze/bfg/tests/test_secpols.py
+++ b/repoze/bfg/tests/test_secpols.py
@@ -13,19 +13,6 @@ class TestAPIFunctionsSecpolBBB(unittest.TestCase):
except KeyError:
pass
- def _testWithWarnings(self, f, *args, **kw):
- messages = []
- def showwarning(message, category, filename, lineno, file=None):
- messages.append(message)
- try:
- import warnings
- _old_showwarning = warnings.showwarning
- warnings.showwarning = showwarning
- result = f(*args, **kw)
- return result, messages
- finally:
- warnings.showwarning = _old_showwarning
-
def _registerSecurityPolicy(self, secpol):
import zope.component
from repoze.bfg.secpols import registerBBBAuthn
@@ -49,43 +36,28 @@ class TestAPIFunctionsSecpolBBB(unittest.TestCase):
self._registerSecurityPolicy(secpol)
from repoze.bfg.security import authenticated_userid
request = DummyRequest({})
- result, warnings = self._testWithWarnings(authenticated_userid,
- request)
+ result = authenticated_userid(request)
self.assertEqual(result, 'fred')
- self.assertEqual(len(warnings), 1)
def test_authenticated_userid_not_registered(self):
from repoze.bfg.security import authenticated_userid
request = DummyRequest({})
- result, warnings = self._testWithWarnings(authenticated_userid,
- request)
+ result = authenticated_userid(request)
self.assertEqual(result, None)
- self.assertEqual(len(warnings), 1)
-
- def test_authenticated_userid_too_many_args(self):
- from repoze.bfg.security import authenticated_userid
- self.assertRaises(TypeError, authenticated_userid, None, None, None)
def test_effective_principals_registered(self):
secpol = DummySecurityPolicy(False)
self._registerSecurityPolicy(secpol)
from repoze.bfg.security import effective_principals
request = DummyRequest({})
- result, warnings = self._testWithWarnings(effective_principals, request)
+ result = effective_principals(request)
self.assertEqual(result, ['fred', 'bob'])
- self.assertEqual(len(warnings), 1)
def test_effective_principals_not_registered(self):
from repoze.bfg.security import effective_principals
request = DummyRequest({})
- result, warnings = self._testWithWarnings(effective_principals, request)
+ result = effective_principals(request)
self.assertEqual(result, [])
- self.assertEqual(len(warnings), 1)
-
- def test_effective_principals_too_many_args(self):
- from repoze.bfg.security import effective_principals
- self.assertRaises(TypeError, effective_principals, None, None, None)
-
def test_principals_allowed_by_permission_not_registered(self):
from repoze.bfg.security import principals_allowed_by_permission
@@ -665,25 +637,25 @@ class TestSecurityPolicyToAuthenticationPolicyAdapter(unittest.TestCase):
def test_authenticated_userid(self):
secpol = DummySecurityPolicy(None)
adapter = self._makeOne(secpol)
- result = adapter.authenticated_userid(None, None)
+ result = adapter.authenticated_userid(None)
self.assertEqual(result, 'fred')
def test_effective_principals(self):
secpol = DummySecurityPolicy(None)
adapter = self._makeOne(secpol)
- result = adapter.effective_principals(None, None)
+ result = adapter.effective_principals(None)
self.assertEqual(result, ['fred', 'bob'])
def test_remember(self):
secpol = DummySecurityPolicy(None)
adapter = self._makeOne(secpol)
- result = adapter.remember(None, None, None)
+ result = adapter.remember(None, None)
self.assertEqual(result, [])
def test_forget(self):
secpol = DummySecurityPolicy(None)
adapter = self._makeOne(secpol)
- result = adapter.forget(None, None)
+ result = adapter.forget(None)
self.assertEqual(result, [])
class TestSecurityPolicyToAuthorizationPolicyAdapter(unittest.TestCase):
diff --git a/repoze/bfg/tests/test_security.py b/repoze/bfg/tests/test_security.py
index 3f18d3a4a..bb1a54e04 100644
--- a/repoze/bfg/tests/test_security.py
+++ b/repoze/bfg/tests/test_security.py
@@ -230,21 +230,19 @@ class TestAuthenticatedUserId(unittest.TestCase):
def tearDown(self):
cleanUp()
- def _callFUT(self, *arg):
+ def _callFUT(self, request):
from repoze.bfg.security import authenticated_userid
- return authenticated_userid(*arg)
+ return authenticated_userid(request)
def test_no_authentication_policy(self):
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request)
+ result = self._callFUT(request)
self.assertEqual(result, None)
def test_with_authentication_policy(self):
_registerAuthenticationPolicy('yo')
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request)
+ result = self._callFUT(request)
self.assertEqual(result, 'yo')
class TestEffectivePrincipals(unittest.TestCase):
@@ -254,21 +252,19 @@ class TestEffectivePrincipals(unittest.TestCase):
def tearDown(self):
cleanUp()
- def _callFUT(self, *arg):
+ def _callFUT(self, request):
from repoze.bfg.security import effective_principals
- return effective_principals(*arg)
+ return effective_principals(request)
def test_no_authentication_policy(self):
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request)
+ result = self._callFUT(request)
self.assertEqual(result, [])
def test_with_authentication_policy(self):
_registerAuthenticationPolicy('yo')
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request)
+ result = self._callFUT(request)
self.assertEqual(result, 'yo')
class TestPrincipalsAllowedByPermission(unittest.TestCase):
@@ -308,14 +304,13 @@ class TestRemember(unittest.TestCase):
def test_no_authentication_policy(self):
context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request, 'me')
+ result = self._callFUT(request, 'me')
self.assertEqual(result, [])
def test_with_authentication_policy(self):
_registerAuthenticationPolicy('yo')
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request, 'me')
+ result = self._callFUT(request, 'me')
self.assertEqual(result, 'yo')
class TestForget(unittest.TestCase):
@@ -330,16 +325,14 @@ class TestForget(unittest.TestCase):
return forget(*arg)
def test_no_authentication_policy(self):
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request)
+ result = self._callFUT(request)
self.assertEqual(result, [])
def test_with_authentication_policy(self):
_registerAuthenticationPolicy('yo')
- context = DummyContext()
request = DummyRequest({})
- result = self._callFUT(context, request)
+ result = self._callFUT(request)
self.assertEqual(result, 'yo')
class DummyContext:
@@ -354,16 +347,16 @@ class DummyAuthenticationPolicy:
def __init__(self, result):
self.result = result
- def effective_principals(self, context, request):
+ def effective_principals(self, request):
return self.result
- def authenticated_userid(self, context, request):
+ def authenticated_userid(self, request):
return self.result
- def remember(self, context, request, principal, **kw):
+ def remember(self, request, principal, **kw):
return self.result
- def forget(self, context, request):
+ def forget(self, request):
return self.result
class DummyAuthorizationPolicy:
diff --git a/repoze/bfg/tests/test_testing.py b/repoze/bfg/tests/test_testing.py
index 5024c41ba..ff0846881 100644
--- a/repoze/bfg/tests/test_testing.py
+++ b/repoze/bfg/tests/test_testing.py
@@ -222,19 +222,19 @@ class TestDummySecurityPolicy(unittest.TestCase):
def test_authenticated_userid(self):
policy = self._makeOne('user')
- self.assertEqual(policy.authenticated_userid(None, None), 'user')
+ self.assertEqual(policy.authenticated_userid(None), 'user')
def test_effective_principals_userid(self):
policy = self._makeOne('user', ('group1',))
from repoze.bfg.security import Everyone
from repoze.bfg.security import Authenticated
- self.assertEqual(policy.effective_principals(None, None),
+ self.assertEqual(policy.effective_principals(None),
[Everyone, Authenticated, 'user', 'group1'])
def test_effective_principals_nouserid(self):
policy = self._makeOne()
from repoze.bfg.security import Everyone
- self.assertEqual(policy.effective_principals(None, None), [Everyone])
+ self.assertEqual(policy.effective_principals(None), [Everyone])
def test_permits(self):
policy = self._makeOne()
@@ -249,11 +249,11 @@ class TestDummySecurityPolicy(unittest.TestCase):
def test_forget(self):
policy = self._makeOne()
- self.assertEqual(policy.forget(None, None), [])
+ self.assertEqual(policy.forget(None), [])
def test_remember(self):
policy = self._makeOne()
- self.assertEqual(policy.remember(None, None, None), [])
+ self.assertEqual(policy.remember(None, None), [])