summaryrefslogtreecommitdiff
path: root/repoze
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-02-03 16:29:32 +0000
committerChris McDonough <chrism@agendaless.com>2009-02-03 16:29:32 +0000
commit39fe84bf7304de1f2992abe48686f25922558b7c (patch)
tree57b3252609d06ee346d3d8d764ca639b39456cd4 /repoze
parent8d7bd500c1745005d8c4af284423b0547d8c7652 (diff)
downloadpyramid-39fe84bf7304de1f2992abe48686f25922558b7c.tar.gz
pyramid-39fe84bf7304de1f2992abe48686f25922558b7c.tar.bz2
pyramid-39fe84bf7304de1f2992abe48686f25922558b7c.zip
- Add ` `renderer`` argument (defaulting to None) to
``repoze.bfg.testing.registerDummyRenderer``. This makes it possible, for instance, to register a custom renderer that raises an exception in a unit test.
Diffstat (limited to 'repoze')
-rw-r--r--repoze/bfg/testing.py17
-rw-r--r--repoze/bfg/tests/test_testing.py9
2 files changed, 18 insertions, 8 deletions
diff --git a/repoze/bfg/testing.py b/repoze/bfg/testing.py
index 77a1f05ad..6bc96fced 100644
--- a/repoze/bfg/testing.py
+++ b/repoze/bfg/testing.py
@@ -52,15 +52,16 @@ def registerEventListener(event_iface=Interface):
registerSubscriber(subscriber, event_iface)
return L
-def registerDummyRenderer(path):
- """ Create and register a dummy template renderer at ``path``
- (usually a relative filename ala ``templates/foo.pt``) and return
- the renderer object. This function is useful when testing code
- that calls the ``render_template_to_response`` or any other
- ``render_template*`` API of any of the built-in templating
- systems."""
+def registerDummyRenderer(path, renderer=None):
+ """ Register a 'renderer' at ``path`` (usually a relative filename
+ ala ``templates/foo.pt``) and return the renderer object. If the
+ ``renderer`` argument is None, a 'dummy' renderer will be used.
+ This function is useful when testing code that calls the
+ ``render_template_to_response`` or any other ``render_template*``
+ API of any of the built-in templating systems."""
from repoze.bfg.interfaces import ITemplateRenderer
- renderer = DummyTemplateRenderer()
+ if renderer is None:
+ renderer = DummyTemplateRenderer()
return registerUtility(renderer, ITemplateRenderer, path)
def registerView(name, result='', view=None, for_=(Interface, Interface)):
diff --git a/repoze/bfg/tests/test_testing.py b/repoze/bfg/tests/test_testing.py
index 019e0cc53..8aac7d5a0 100644
--- a/repoze/bfg/tests/test_testing.py
+++ b/repoze/bfg/tests/test_testing.py
@@ -56,6 +56,15 @@ class TestTestingFunctions(unittest.TestCase):
response = render_template_to_response('templates/foo', foo=1, bar=2)
self.assertEqual(dict(foo=1, bar=2), renderer._received)
+ def test_registerDummyRenderer_explicitrenderer(self):
+ from repoze.bfg import testing
+ def renderer(**kw):
+ raise ValueError
+ renderer = testing.registerDummyRenderer('templates/foo', renderer)
+ from repoze.bfg.chameleon_zpt import render_template_to_response
+ self.assertRaises(ValueError, render_template_to_response,
+ 'templates/foo', foo=1, bar=2)
+
def test_registerEventListener_single(self):
from repoze.bfg import testing
from zope.interface import implements