summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_view.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_view.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_view.py')
-rw-r--r--repoze/bfg/tests/test_view.py125
1 files changed, 22 insertions, 103 deletions
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index 08beffeaa..cc293d6ef 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -15,11 +15,21 @@ class BaseTest(object):
from repoze.bfg.interfaces import IView
gsm.registerAdapter(app, for_, IView, name)
- def _registerPermission(self, permission, name, *for_):
+ def _registerViewPermission(self, view_name, allow=True):
import zope.component
- gsm = zope.component.getGlobalSiteManager()
+ from zope.interface import Interface
from repoze.bfg.interfaces import IViewPermission
- gsm.registerAdapter(permission, for_, IViewPermission, name)
+ class Checker(object):
+ def __call__(self, context, request):
+ self.context = context
+ self.request = request
+ return allow
+ checker = Checker()
+ gsm = zope.component.getGlobalSiteManager()
+ gsm.registerAdapter(checker, (Interface, Interface),
+ IViewPermission,
+ view_name)
+ return checker
def _registerSecurityPolicy(self, secpol):
import zope.component
@@ -61,12 +71,10 @@ class RenderViewToResponseTests(BaseTest, unittest.TestCase):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(False)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', False)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -85,12 +93,10 @@ class RenderViewToResponseTests(BaseTest, unittest.TestCase):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(True)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', True)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -109,12 +115,10 @@ class RenderViewToResponseTests(BaseTest, unittest.TestCase):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(False)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', False)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -146,12 +150,10 @@ class RenderViewToIterableTests(BaseTest, unittest.TestCase):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(False)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', False)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -170,12 +172,10 @@ class RenderViewToIterableTests(BaseTest, unittest.TestCase):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(True)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', True)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -194,12 +194,10 @@ class RenderViewToIterableTests(BaseTest, unittest.TestCase):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(False)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', False)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -231,12 +229,10 @@ class RenderViewTests(unittest.TestCase, BaseTest):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(False)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', False)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -255,12 +251,10 @@ class RenderViewTests(unittest.TestCase, BaseTest):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(True)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', True)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -278,12 +272,10 @@ class RenderViewTests(unittest.TestCase, BaseTest):
directlyProvides(context, IContext)
response = DummyResponse()
secpol = DummySecurityPolicy()
- permissionfactory = make_permission_factory(False)
view = make_view(response)
self._registerView(view, 'registered', IContext, IRequest)
self._registerSecurityPolicy(secpol)
- self._registerPermission(permissionfactory, 'registered', IContext,
- IRequest)
+ self._registerViewPermission('registered', False)
environ = self._makeEnviron()
from webob import Request
request = Request(environ)
@@ -314,67 +306,6 @@ class TestIsResponse(unittest.TestCase):
response.status = None
self.assertEqual(self._callFUT(response), False)
-class TestViewExecutionPermitted(unittest.TestCase):
- def setUp(self):
- cleanUp()
-
- def tearDown(self):
- cleanUp()
-
- def _callFUT(self, *arg, **kw):
- from repoze.bfg.view import view_execution_permitted
- return view_execution_permitted(*arg, **kw)
-
- def _registerSecurityPolicy(self, secpol):
- import zope.component
- gsm = zope.component.getGlobalSiteManager()
- from repoze.bfg.interfaces import ISecurityPolicy
- gsm.registerUtility(secpol, ISecurityPolicy)
-
- def _registerPermission(self, permission, name, *for_):
- import zope.component
- gsm = zope.component.getGlobalSiteManager()
- from repoze.bfg.interfaces import IViewPermission
- gsm.registerAdapter(permission, for_, IViewPermission, name)
-
- def test_no_secpol(self):
- context = DummyContext()
- request = DummyRequest()
- result = self._callFUT(context, request, '')
- msg = result.msg
- self.failUnless("Allowed: view name '' in context" in msg)
- self.failUnless('(no security policy in use)' in msg)
- self.assertEqual(result, True)
-
- def test_secpol_no_permission(self):
- secpol = DummySecurityPolicy()
- self._registerSecurityPolicy(secpol)
- context = DummyContext()
- request = DummyRequest()
- result = self._callFUT(context, request, '')
- msg = result.msg
- self.failUnless("Allowed: view name '' in context" in msg)
- self.failUnless("(no permission registered for name '')" in msg)
- self.assertEqual(result, True)
-
- def test_secpol_and_permission(self):
- from zope.interface import Interface
- from zope.interface import directlyProvides
- from repoze.bfg.interfaces import IRequest
- class IContext(Interface):
- pass
- context = DummyContext()
- directlyProvides(context, IContext)
- permissionfactory = make_permission_factory(True)
- self._registerPermission(permissionfactory, '', IContext,
- IRequest)
- secpol = DummySecurityPolicy()
- self._registerSecurityPolicy(secpol)
- request = DummyRequest()
- directlyProvides(request, IRequest)
- result = self._callFUT(context, request, '')
- self.failUnless(result is True)
-
class TestStaticView(unittest.TestCase, BaseTest):
def setUp(self):
cleanUp()
@@ -527,18 +458,6 @@ def make_view(response):
return response
return view
-def make_permission_factory(result):
- class DummyPermissionFactory:
- def __init__(self, context, request):
- self.context = context
- self.request = request
-
- def __call__(self, secpol):
- self.__class__.checked_with = secpol
- return result
-
- return DummyPermissionFactory
-
class DummyResponse:
status = '200 OK'
headerlist = ()