diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-08-16 09:10:09 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-08-16 09:10:09 +0000 |
| commit | 29b888c68c7d4c6a18627f09bcd5db865bcbcaef (patch) | |
| tree | 9fe25724835fdfbf6323d42573e9783a369bed34 | |
| parent | 6fd7d0a06b2ec0153765c9f25d7e7f4892683373 (diff) | |
| download | pyramid-29b888c68c7d4c6a18627f09bcd5db865bcbcaef.tar.gz pyramid-29b888c68c7d4c6a18627f09bcd5db865bcbcaef.tar.bz2 pyramid-29b888c68c7d4c6a18627f09bcd5db865bcbcaef.zip | |
Add "get_template" to template module.
| -rw-r--r-- | docs/api/template.rst | 2 | ||||
| -rw-r--r-- | repoze/bfg/template.py | 21 | ||||
| -rw-r--r-- | repoze/bfg/tests/test_template.py | 85 |
3 files changed, 64 insertions, 44 deletions
diff --git a/docs/api/template.rst b/docs/api/template.rst index eec874485..64e25a37c 100644 --- a/docs/api/template.rst +++ b/docs/api/template.rst @@ -5,6 +5,8 @@ .. automodule:: repoze.bfg.template + .. autofunction:: get_template + .. autofunction:: render_template .. autofunction:: render_template_to_response diff --git a/repoze/bfg/template.py b/repoze/bfg/template.py index 0d390fecf..3c60dd19e 100644 --- a/repoze/bfg/template.py +++ b/repoze/bfg/template.py @@ -67,13 +67,8 @@ def registerTemplate(type, template, path): else: sm.registerUtility(template, type, name=path) -def render_template(path, **kw): - """ Render a z3c.pt (ZPT) template at the package-relative path - (may also be absolute) using the kwargs in ``*kw`` as top-level - names and return a string. """ +def _get_template(path, **kw): # XXX use pkg_resources - path = caller_path(path) - template = queryUtility(ITemplate, path) if template is None: @@ -82,6 +77,20 @@ def render_template(path, **kw): template = Z3CPTTemplateFactory(path) registerTemplate(ITemplate, template, path) + return template + +def get_template(path): + """ Return a z3c.pt template object at the package-relative path + (may also be absolute) """ + path = caller_path(path) + return _get_template(path).template + +def render_template(path, **kw): + """ Render a z3c.pt (ZPT) template at the package-relative path + (may also be absolute) using the kwargs in ``*kw`` as top-level + names and return a string. """ + path = caller_path(path) + template = get_template(path) return template(**kw) def render_template_to_response(path, **kw): diff --git a/repoze/bfg/tests/test_template.py b/repoze/bfg/tests/test_template.py index 1a5fcf1f4..ba3745132 100644 --- a/repoze/bfg/tests/test_template.py +++ b/repoze/bfg/tests/test_template.py @@ -64,35 +64,13 @@ class RenderTemplateTests(unittest.TestCase, Base): from repoze.bfg.template import render_template return render_template - def test_nonabs_unregistered(self): + def test_it(self): self._zcmlConfigure() - from zope.component import queryUtility - from repoze.bfg.interfaces import ITemplate minimal = self._getTemplatePath('minimal.pt') - self.assertEqual(queryUtility(ITemplate, minimal), None) render = self._getFUT() result = render(minimal) self.failUnless(isinstance(result, str)) self.assertEqual(result, '<div>\n</div>') - from repoze.bfg.template import Z3CPTTemplateFactory - self.failUnless(isinstance(queryUtility(ITemplate, minimal), - Z3CPTTemplateFactory)) - - def test_nonabs_registered(self): - self._zcmlConfigure() - from zope.component import getGlobalSiteManager - from zope.component import queryUtility - from repoze.bfg.template import Z3CPTTemplateFactory - from repoze.bfg.interfaces import ITemplate - minimal = self._getTemplatePath('minimal.pt') - utility = Z3CPTTemplateFactory(minimal) - gsm = getGlobalSiteManager() - gsm.registerUtility(utility, ITemplate, name=minimal) - render = self._getFUT() - result = render(minimal) - self.failUnless(isinstance(result, str)) - self.assertEqual(result, '<div>\n</div>') - self.assertEqual(queryUtility(ITemplate, minimal), utility) class RenderTemplateToResponseTests(unittest.TestCase, Base): def setUp(self): @@ -105,12 +83,9 @@ class RenderTemplateToResponseTests(unittest.TestCase, Base): from repoze.bfg.template import render_template_to_response return render_template_to_response - def test_nonabs_unregistered(self): + def test_it(self): self._zcmlConfigure() - from zope.component import queryUtility - from repoze.bfg.interfaces import ITemplate minimal = self._getTemplatePath('minimal.pt') - self.assertEqual(queryUtility(ITemplate, minimal), None) render = self._getFUT() result = render(minimal) from webob import Response @@ -118,9 +93,17 @@ class RenderTemplateToResponseTests(unittest.TestCase, Base): self.assertEqual(result.app_iter, ['<div>\n</div>']) self.assertEqual(result.status, '200 OK') self.assertEqual(len(result.headerlist), 2) - from repoze.bfg.template import Z3CPTTemplateFactory - self.failUnless(isinstance(queryUtility(ITemplate, minimal), - Z3CPTTemplateFactory)) + +class GetTemplateTests(unittest.TestCase, Base): + def setUp(self): + Base.setUp(self) + + def tearDown(self): + Base.tearDown(self) + + def _getFUT(self): + from repoze.bfg.template import get_template + return get_template def test_nonabs_registered(self): self._zcmlConfigure() @@ -132,13 +115,39 @@ class RenderTemplateToResponseTests(unittest.TestCase, Base): utility = Z3CPTTemplateFactory(minimal) gsm = getGlobalSiteManager() gsm.registerUtility(utility, ITemplate, name=minimal) - render = self._getFUT() - result = render(minimal) - from webob import Response - self.failUnless(isinstance(result, Response)) - self.assertEqual(result.app_iter, ['<div>\n</div>']) - self.assertEqual(result.status, '200 OK') - self.assertEqual(len(result.headerlist), 2) + get = self._getFUT() + result = get(minimal) + self.assertEqual(result.filename, minimal) self.assertEqual(queryUtility(ITemplate, minimal), utility) - + def test_nonabs_unregistered(self): + self._zcmlConfigure() + from zope.component import getGlobalSiteManager + from zope.component import queryUtility + from repoze.bfg.template import Z3CPTTemplateFactory + from repoze.bfg.interfaces import ITemplate + minimal = self._getTemplatePath('minimal.pt') + self.assertEqual(queryUtility(ITemplate, minimal), None) + utility = Z3CPTTemplateFactory(minimal) + gsm = getGlobalSiteManager() + gsm.registerUtility(utility, ITemplate, name=minimal) + get = self._getFUT() + result = get(minimal) + self.assertEqual(result.filename, minimal) + self.assertEqual(queryUtility(ITemplate, minimal), utility) + + def test_nonabs_registered(self): + self._zcmlConfigure() + from zope.component import getGlobalSiteManager + from zope.component import queryUtility + from repoze.bfg.template import Z3CPTTemplateFactory + from repoze.bfg.interfaces import ITemplate + minimal = self._getTemplatePath('minimal.pt') + utility = Z3CPTTemplateFactory(minimal) + gsm = getGlobalSiteManager() + gsm.registerUtility(utility, ITemplate, name=minimal) + get = self._getFUT() + result = get(minimal) + self.assertEqual(result.filename, minimal) + self.assertEqual(queryUtility(ITemplate, minimal), utility) + |
