diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-09-16 15:45:14 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-09-16 15:45:14 +0000 |
| commit | ef68a7851b91ef135c03d940f7a9d8b1d519e1cf (patch) | |
| tree | ab03c614eff00bb3c6aa163b536c4d016b156b9e | |
| parent | d393e754051680155fb2687474fd2959c34bbe99 (diff) | |
| download | pyramid-ef68a7851b91ef135c03d940f7a9d8b1d519e1cf.tar.gz pyramid-ef68a7851b91ef135c03d940f7a9d8b1d519e1cf.tar.bz2 pyramid-ef68a7851b91ef135c03d940f7a9d8b1d519e1cf.zip | |
Coverage.
| -rw-r--r-- | repoze/bfg/chameleon_zpt.py | 5 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_renderers.py | 15 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_view.py | 35 | ||||
| -rw-r--r-- | repoze/bfg/view.py | 24 |
4 files changed, 48 insertions, 31 deletions
diff --git a/repoze/bfg/chameleon_zpt.py b/repoze/bfg/chameleon_zpt.py index b4be1a4fc..9f6012b19 100644 --- a/repoze/bfg/chameleon_zpt.py +++ b/repoze/bfg/chameleon_zpt.py @@ -56,8 +56,3 @@ def render_template_to_response(path, **kw): response_factory = queryUtility(IResponseFactory, default=Response) return response_factory(result) -def _auto_reload(): - settings = get_settings() - if settings: - return settings['reload_templates'] - return False diff --git a/repoze/bfg/tests/test_renderers.py b/repoze/bfg/tests/test_renderers.py index 3ceb672b8..6e33f4ce5 100644 --- a/repoze/bfg/tests/test_renderers.py +++ b/repoze/bfg/tests/test_renderers.py @@ -165,6 +165,21 @@ class TestRendererFromName(unittest.TestCase): result = self._callFUT(fixture) self.assertEqual(result, renderer) + def test_it_no_renderer(self): + self.assertRaises(ValueError, self._callFUT, 'foo') + + +class Test_json_renderer_factory(unittest.TestCase): + def _callFUT(self, name): + from repoze.bfg.renderers import json_renderer_factory + return json_renderer_factory(name) + + def test_it(self): + renderer = self._callFUT(None) + result = renderer({'a':1}) + self.assertEqual(result, '{"a": 1}') + + class DummyFactory: def __init__(self, renderer): self.renderer = renderer diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py index 3106359a3..c4bbb719c 100644 --- a/repoze/bfg/tests/test_view.py +++ b/repoze/bfg/tests/test_view.py @@ -631,7 +631,7 @@ class Test_map_view(unittest.TestCase): from repoze.bfg.view import map_view return map_view(view, *arg, **kw) - def _registerRenderer(self): + def _registerRenderer(self, name='.txt'): from repoze.bfg.interfaces import IRendererFactory from repoze.bfg.interfaces import ITemplateRenderer from zope.interface import implements @@ -648,7 +648,7 @@ class Test_map_view(unittest.TestCase): factory = RendererFactory() sm = getSiteManager() - sm.registerUtility(factory, IRendererFactory, name='.txt') + sm.registerUtility(factory, IRendererFactory, name=name) def test_view_as_function_context_and_request(self): def view(context, request): @@ -664,7 +664,7 @@ class Test_map_view(unittest.TestCase): self.failIf(result is view) self.assertRaises(TypeError, result, None, None) - def test_view_as_function_with_attr_and_template(self): + def test_view_as_function_with_attr_and_renderer(self): self._registerRenderer() def view(context, request): """ """ @@ -719,7 +719,7 @@ class Test_map_view(unittest.TestCase): self.assertEqual(view.__name__, result.__name__) self.assertEqual(result(None, None), 'OK') - def test_view_as_newstyle_class_context_and_request_with_attr_and_template( + def test_view_as_newstyle_class_context_and_request_with_attr_and_renderer( self): self._registerRenderer() class view(object): @@ -762,7 +762,7 @@ class Test_map_view(unittest.TestCase): self.assertEqual(view.__name__, result.__name__) self.assertEqual(result(None, None), 'OK') - def test_view_as_newstyle_class_requestonly_with_attr_and_template(self): + def test_view_as_newstyle_class_requestonly_with_attr_and_renderer(self): self._registerRenderer() class view(object): def __init__(self, request): @@ -804,7 +804,7 @@ class Test_map_view(unittest.TestCase): self.assertEqual(view.__name__, result.__name__) self.assertEqual(result(None, None), 'OK') - def test_view_as_oldstyle_class_context_and_request_with_attr_and_template( + def test_view_as_oldstyle_class_context_and_request_with_attr_and_renderer( self): self._registerRenderer() class view: @@ -847,7 +847,7 @@ class Test_map_view(unittest.TestCase): self.assertEqual(view.__name__, result.__name__) self.assertEqual(result(None, None), 'OK') - def test_view_as_oldstyle_class_requestonly_with_attr_and_template(self): + def test_view_as_oldstyle_class_requestonly_with_attr_and_renderer(self): self._registerRenderer() class view: def __init__(self, request): @@ -881,7 +881,7 @@ class Test_map_view(unittest.TestCase): self.failIf(result is view) self.assertEqual(result(None, None), 'OK') - def test_view_as_instance_context_and_request_attr_and_template(self): + def test_view_as_instance_context_and_request_attr_and_renderer(self): self._registerRenderer() class View: def index(self, context, request): @@ -917,7 +917,7 @@ class Test_map_view(unittest.TestCase): self.failUnless('instance' in result.__name__) self.assertEqual(result(None, None), 'OK') - def test_view_as_instance_requestonly_with_attr_and_template(self): + def test_view_as_instance_requestonly_with_attr_and_renderer(self): self._registerRenderer() class View: def index(self, request): @@ -932,7 +932,7 @@ class Test_map_view(unittest.TestCase): request = DummyRequest() self.assertEqual(result(None, request).body, 'Hello!') - def test_view_templateonly(self): + def test_view_rendereronly(self): self._registerRenderer() def view(context, request): return {'a':'1'} @@ -944,6 +944,17 @@ class Test_map_view(unittest.TestCase): request = DummyRequest() self.assertEqual(result(None, request).body, 'Hello!') + def test_view_defaultrendereronly(self): + self._registerRenderer(name='') + def view(context, request): + return {'a':'1'} + result = self._callFUT(view) + self.failIf(result is view) + self.assertEqual(view.__module__, result.__module__) + self.assertEqual(view.__doc__, result.__doc__) + request = DummyRequest() + self.assertEqual(result(None, request).body, 'Hello!') + class TestRequestOnly(unittest.TestCase): def _callFUT(self, arg): from repoze.bfg.view import requestonly @@ -1153,12 +1164,12 @@ class Test_rendered_response(unittest.TestCase): def tearDown(self): cleanUp() - def _callFUT(self, template_name, response, view=None, + def _callFUT(self, renderer_name, response, view=None, context=None, request=None): from repoze.bfg.view import rendered_response if request is None: request = DummyRequest() - return rendered_response(template_name, response, view, context, + return rendered_response(renderer_name, response, view, context, request) def _registerRenderer(self): diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py index 0f899df53..e5a6e5398 100644 --- a/repoze/bfg/view.py +++ b/repoze/bfg/view.py @@ -336,7 +336,7 @@ class bfg_view(object): """ def __init__(self, name='', request_type=None, for_=None, permission=None, route_name=None, request_method=None, request_param=None, - containment=None, attr=None, renderer='', wrapper=None): + containment=None, attr=None, renderer=None, wrapper=None): self.name = name self.request_type = request_type self.for_ = for_ @@ -469,6 +469,10 @@ def rendered_response(renderer_name, response, view, context, request): def map_view(view, attr=None, renderer=None): wrapped_view = view + if renderer is None: + if queryUtility(IRendererFactory) is not None: # default renderer + renderer = '' + if inspect.isclass(view): # If the object we've located is a class, turn it into a # function that operates like a Zope view (when it's invoked, @@ -485,7 +489,7 @@ def map_view(view, attr=None, renderer=None): response = inst() else: response = getattr(inst, attr)() - if renderer: + if renderer is not None: response = rendered_response(renderer, response, inst, context, request) return response @@ -498,7 +502,7 @@ def map_view(view, attr=None, renderer=None): response = inst() else: response = getattr(inst, attr)() - if renderer: + if renderer is not None: response = rendered_response(renderer, response, inst, context, request) return response @@ -513,7 +517,7 @@ def map_view(view, attr=None, renderer=None): else: response = getattr(view, attr)(request) - if renderer: + if renderer is not None: response = rendered_response(renderer, response, view, context, request) return response @@ -522,13 +526,13 @@ def map_view(view, attr=None, renderer=None): elif attr: def _bfg_attr_view(context, request): response = getattr(view, attr)(context, request) - if renderer: + if renderer is not None: response = rendered_response(renderer, response, view, context, request) return response wrapped_view = _bfg_attr_view - elif renderer: + elif renderer is not None: def _rendered_view(context, request): response = view(context, request) response = rendered_response(renderer, response, view, @@ -536,14 +540,6 @@ def map_view(view, attr=None, renderer=None): return response wrapped_view = _rendered_view - elif queryUtility(IRendererFactory): - def _default_rendered_view(context, request): - response = view(context, request) - response = rendered_response(renderer, response, view, - context, request) - return response - wrapped_view = _default_rendered_view - decorate_view(wrapped_view, view) return wrapped_view |
