summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-24 10:31:20 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-24 10:31:20 +0000
commit7292d4d6a7d63c55a718dc50943bc9cbf90ae6fe (patch)
tree61af50cf949b1f2d895375f37d223fbf12237fce /repoze/bfg/tests
parent5ab02920213361e245489c1eedd83757893e0ffa (diff)
downloadpyramid-7292d4d6a7d63c55a718dc50943bc9cbf90ae6fe.tar.gz
pyramid-7292d4d6a7d63c55a718dc50943bc9cbf90ae6fe.tar.bz2
pyramid-7292d4d6a7d63c55a718dc50943bc9cbf90ae6fe.zip
Behavior Changes
---------------- - The ``repoze.bfg.view.render_view_to_response`` API will no longer raise a ValueError if an object returned by a view function it calls does not possess certain attributes (``headerlist``, ``app_iter``, ``status``). This API used to attempt to perform a check using the ``is_response`` function in ``repoze.bfg.view``, and raised a ``ValueError`` if the ``is_response`` check failed. The responsibility is now the caller's to ensure that the return value from a view function is a "real" response. - WSGI environ dicts passed to ``repoze.bfg`` 's Router must now contain a REQUEST_METHOD key/value; if they do not, a KeyError will be raised (speed). Implementation Changes ---------------------- - Various speed micro-tweaks.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_registry.py8
-rw-r--r--repoze/bfg/tests/test_router.py13
-rw-r--r--repoze/bfg/tests/test_view.py56
3 files changed, 17 insertions, 60 deletions
diff --git a/repoze/bfg/tests/test_registry.py b/repoze/bfg/tests/test_registry.py
index f54ac934f..2f7123cff 100644
--- a/repoze/bfg/tests/test_registry.py
+++ b/repoze/bfg/tests/test_registry.py
@@ -12,7 +12,7 @@ class TestRegistry(unittest.TestCase):
def test_registerHandler_and_notify(self):
registry = self._makeOne()
- self.assertEqual(registry._has_listeners, False)
+ self.assertEqual(registry.has_listeners, False)
from zope.interface import Interface
from zope.interface import implements
class IFoo(Interface):
@@ -23,21 +23,21 @@ class TestRegistry(unittest.TestCase):
def f(event):
L.append(event)
registry.registerHandler(f, [IFoo])
- self.assertEqual(registry._has_listeners, True)
+ self.assertEqual(registry.has_listeners, True)
event = FooEvent()
registry.notify(event)
self.assertEqual(L, [event])
def test_registerSubscriptionAdapter_and_notify(self):
registry = self._makeOne()
- self.assertEqual(registry._has_listeners, False)
+ self.assertEqual(registry.has_listeners, False)
from zope.interface import Interface
class EventHandler:
pass
class IFoo(Interface):
pass
registry.registerSubscriptionAdapter(EventHandler, [IFoo], Interface)
- self.assertEqual(registry._has_listeners, True)
+ self.assertEqual(registry.has_listeners, True)
class TestPopulateRegistry(unittest.TestCase):
def setUp(self):
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py
index 8c2a5cf04..c17bc623a 100644
--- a/repoze/bfg/tests/test_router.py
+++ b/repoze/bfg/tests/test_router.py
@@ -180,6 +180,19 @@ class RouterTests(unittest.TestCase):
self.failUnless("view_name: ''" in message)
self.failUnless("subpath: []" in message)
+ def test_call_view_returns_nonresponse(self):
+ rootfactory = make_rootfactory(None)
+ context = DummyContext()
+ traversalfactory = make_traversal_factory(context, '', [])
+ environ = self._makeEnviron()
+ self._registerTraverserFactory(traversalfactory, '', None)
+ view = make_view('abc')
+ self._registerView(view, '', None, None)
+ self._registerRootFactory(rootfactory)
+ router = self._makeOne()
+ start_response = DummyStartResponse()
+ self.assertRaises(ValueError, router, environ, start_response)
+
def test_call_view_registered_nonspecific_default_path(self):
rootfactory = make_rootfactory(None)
context = DummyContext()
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index 9bdc7d80a..e32a04deb 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -123,26 +123,6 @@ class RenderViewToResponseTests(BaseTest, unittest.TestCase):
secure=False)
self.assertEqual(response.status, '200 OK')
-
- def test_call_view_response_doesnt_implement_IResponse(self):
- context = DummyContext()
- from zope.interface import Interface
- from zope.interface import directlyProvides
- from repoze.bfg.interfaces import IRequest
- class IContext(Interface):
- pass
- directlyProvides(context, IContext)
- response = 'abc'
- view = make_view(response)
- self._registerView(view, 'registered', IContext, IRequest)
- environ = self._makeEnviron()
- from webob import Request
- request = Request(environ)
- directlyProvides(request, IRequest)
- self.assertRaises(ValueError, self._callFUT, context, request,
- name='registered', secure=False)
-
-
class RenderViewToIterableTests(BaseTest, unittest.TestCase):
def _callFUT(self, *arg, **kw):
from repoze.bfg.view import render_view_to_iterable
@@ -228,24 +208,6 @@ class RenderViewToIterableTests(BaseTest, unittest.TestCase):
secure=False)
self.assertEqual(iterable, ())
- def test_call_view_response_doesnt_implement_IResponse(self):
- context = DummyContext()
- from zope.interface import Interface
- from zope.interface import directlyProvides
- from repoze.bfg.interfaces import IRequest
- class IContext(Interface):
- pass
- directlyProvides(context, IContext)
- response = 'abc'
- view = make_view(response)
- self._registerView(view, 'registered', IContext, IRequest)
- environ = self._makeEnviron()
- from webob import Request
- request = Request(environ)
- directlyProvides(request, IRequest)
- self.assertRaises(ValueError, self._callFUT, context, request,
- name='registered', secure=False)
-
class RenderViewTests(unittest.TestCase, BaseTest):
def _callFUT(self, *arg, **kw):
from repoze.bfg.view import render_view
@@ -329,24 +291,6 @@ class RenderViewTests(unittest.TestCase, BaseTest):
s = self._callFUT(context, request, name='registered', secure=False)
self.assertEqual(s, '')
- def test_call_view_response_doesnt_implement_IResponse(self):
- context = DummyContext()
- from zope.interface import Interface
- from zope.interface import directlyProvides
- from repoze.bfg.interfaces import IRequest
- class IContext(Interface):
- pass
- directlyProvides(context, IContext)
- response = 'abc'
- view = make_view(response)
- self._registerView(view, 'registered', IContext, IRequest)
- environ = self._makeEnviron()
- from webob import Request
- request = Request(environ)
- directlyProvides(request, IRequest)
- self.assertRaises(ValueError, self._callFUT, context, request,
- name='registered', secure=False)
-
class TestIsResponse(unittest.TestCase):
def _callFUT(self, *arg, **kw):
from repoze.bfg.view import is_response