summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-04-25 18:49:29 +0000
committerChris McDonough <chrism@agendaless.com>2010-04-25 18:49:29 +0000
commit30e64f38f3a01d71f8a728df9d56f31d950ebd20 (patch)
treeebfdc1c832713e2ea737794fe090b766d3422407 /repoze/bfg/tests
parent36ca7c9f7f1b177d69be792f98fda054d7c36c45 (diff)
downloadpyramid-30e64f38f3a01d71f8a728df9d56f31d950ebd20.tar.gz
pyramid-30e64f38f3a01d71f8a728df9d56f31d950ebd20.tar.bz2
pyramid-30e64f38f3a01d71f8a728df9d56f31d950ebd20.zip
Make default_notfound_view and default_forbidden_view expect an exception as
a context. Cause append_slash_notfound_view to work in case it is registered via set_notfound_view.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_configuration.py23
-rw-r--r--repoze/bfg/tests/test_view.py40
2 files changed, 50 insertions, 13 deletions
diff --git a/repoze/bfg/tests/test_configuration.py b/repoze/bfg/tests/test_configuration.py
index 90e074e9a..fa18b75cb 100644
--- a/repoze/bfg/tests/test_configuration.py
+++ b/repoze/bfg/tests/test_configuration.py
@@ -184,17 +184,34 @@ class ConfiguratorTests(unittest.TestCase):
def subscribers(self, events, name):
self.events = events
return events
- def registerUtility(self, impl, iface, name=None, info=None):
+ def registerUtility(self, *arg, **kw):
pass
reg = DummyRegistry()
config = self._makeOne(reg)
- config.set_notfound_view = lambda *arg, **kw: None
- config.set_forbidden_view = lambda *arg, **kw: None
+ config.add_view = lambda *arg, **kw: False
config.setup_registry()
self.assertEqual(reg.has_listeners, True)
self.assertEqual(reg.notify(1), None)
self.assertEqual(reg.events, (1,))
+ def test_setup_registry_registers_default_exception_views(self):
+ from repoze.bfg.exceptions import NotFound
+ from repoze.bfg.exceptions import Forbidden
+ from repoze.bfg.view import default_notfound_view
+ from repoze.bfg.view import default_forbidden_view
+ class DummyRegistry(object):
+ def registerUtility(self, *arg, **kw):
+ pass
+ reg = DummyRegistry()
+ config = self._makeOne(reg)
+ views = []
+ config.add_view = lambda *arg, **kw: views.append((arg, kw))
+ config.setup_registry()
+ self.assertEqual(views[0], ((default_notfound_view,),
+ {'context':NotFound}))
+ self.assertEqual(views[1], ((default_forbidden_view,),
+ {'context':Forbidden}))
+
def test_setup_registry_custom_settings(self):
from repoze.bfg.registry import Registry
from repoze.bfg.interfaces import ISettings
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index 76a218cf6..94366ecbe 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -413,17 +413,23 @@ class TestDefaultForbiddenView(BaseTest, unittest.TestCase):
from repoze.bfg.view import default_forbidden_view
return default_forbidden_view(context, request)
+ def test_no_registry_on_request(self):
+ request = None
+ context = Exception()
+ response = self._callFUT(context, request)
+ self.assertEqual(response.status, '401 Unauthorized')
+ self.failUnless('<code></code>' in response.body)
+
def test_nomessage(self):
request = self._makeRequest()
- context = self._makeContext()
+ context = Exception()
response = self._callFUT(context, request)
self.assertEqual(response.status, '401 Unauthorized')
self.failUnless('<code></code>' in response.body)
def test_withmessage(self):
request = self._makeRequest()
- request.environ['repoze.bfg.message'] = 'abc&123'
- context = self._makeContext()
+ context = Exception('abc&123')
response = self._callFUT(context, request)
self.assertEqual(response.status, '401 Unauthorized')
self.failUnless('<code>abc&amp;123</code>' in response.body)
@@ -433,17 +439,23 @@ class TestDefaultNotFoundView(BaseTest, unittest.TestCase):
from repoze.bfg.view import default_notfound_view
return default_notfound_view(context, request)
+ def test_no_registry_on_request(self):
+ request = None
+ context = Exception()
+ response = self._callFUT(context, request)
+ self.assertEqual(response.status, '404 Not Found')
+ self.failUnless('<code></code>' in response.body)
+
def test_nomessage(self):
request = self._makeRequest()
- context = self._makeContext()
+ context = Exception()
response = self._callFUT(context, request)
self.assertEqual(response.status, '404 Not Found')
self.failUnless('<code></code>' in response.body)
def test_withmessage(self):
request = self._makeRequest()
- request.environ['repoze.bfg.message'] = 'abc&123'
- context = self._makeContext()
+ context = Exception('abc&123')
response = self._callFUT(context, request)
self.assertEqual(response.status, '404 Not Found')
self.failUnless('<code>abc&amp;123</code>' in response.body)
@@ -469,29 +481,37 @@ class AppendSlashNotFoundView(BaseTest, unittest.TestCase):
reg.registerUtility(mapper, IRoutesMapper)
return mapper
- def test_no_mapper(self):
+ def test_context_is_not_exception(self):
request = self._makeRequest(PATH_INFO='/abc')
+ request.exception = Exception('halloo')
context = DummyContext()
response = self._callFUT(context, request)
self.assertEqual(response.status, '404 Not Found')
+ self.failUnless('halloo' in response.body)
+
+ def test_no_mapper(self):
+ request = self._makeRequest(PATH_INFO='/abc')
+ context = Exception()
+ response = self._callFUT(context, request)
+ self.assertEqual(response.status, '404 Not Found')
def test_no_path(self):
request = self._makeRequest()
- context = self._makeContext()
+ context = Exception()
self._registerMapper(request.registry, True)
response = self._callFUT(context, request)
self.assertEqual(response.status, '404 Not Found')
def test_mapper_path_already_slash_ending(self):
request = self._makeRequest(PATH_INFO='/abc/')
- context = DummyContext()
+ context = Exception()
self._registerMapper(request.registry, True)
response = self._callFUT(context, request)
self.assertEqual(response.status, '404 Not Found')
def test_matches(self):
request = self._makeRequest(PATH_INFO='/abc')
- context = DummyContext()
+ context = Exception()
self._registerMapper(request.registry, True)
response = self._callFUT(context, request)
self.assertEqual(response.status, '302 Found')