summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_templating.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_templating.py')
-rw-r--r--repoze/bfg/tests/test_templating.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_templating.py b/repoze/bfg/tests/test_templating.py
new file mode 100644
index 000000000..3429b0839
--- /dev/null
+++ b/repoze/bfg/tests/test_templating.py
@@ -0,0 +1,59 @@
+import unittest
+from zope.testing.cleanup import cleanUp
+
+from repoze.bfg import testing
+
+class TestRendererFromCache(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
+ def _callFUT(self, path, factory, level=3, **kw):
+ from repoze.bfg.templating import renderer_from_cache
+ return renderer_from_cache(path, factory, level, **kw)
+
+ def test_relpath_found(self):
+ renderer = {}
+ from repoze.bfg.interfaces import ITemplateRenderer
+ testing.registerUtility(renderer, ITemplateRenderer, name='foo/bar')
+ result = self._callFUT('foo/bar', None)
+ self.failUnless(renderer is result)
+
+ def test_abspath_found(self):
+ import os
+ here = os.path.dirname(__file__)
+ abspath = os.path.join(here, 'foo/bar')
+ from repoze.bfg.interfaces import ITemplateRenderer
+ renderer = {}
+ testing.registerUtility(renderer, ITemplateRenderer, name=abspath)
+ result = self._callFUT('foo/bar', None)
+ self.failUnless(renderer is result)
+
+ def test_notfound_missing(self):
+ import os
+ here = os.path.dirname(__file__)
+ abspath = os.path.join(here, 'foo/bar')
+ renderer = {}
+ self.assertRaises(ValueError, self._callFUT, 'foo/bar', None)
+
+ def test_withfactory(self):
+ renderer = {}
+ factory = DummyFactory(renderer)
+ import os
+ here = os.path.dirname(__file__)
+ abspath = os.path.join(here, 'pp.pt')
+ from repoze.bfg.interfaces import ITemplateRenderer
+ testing.registerUtility(renderer, ITemplateRenderer, name=abspath)
+ result = self._callFUT('pp.pt', factory)
+ self.failUnless(renderer is result)
+
+class DummyFactory:
+ def __init__(self, renderer):
+ self.renderer = renderer
+
+ def __call__(self, path, **kw):
+ self.path = path
+ self.kw = kw
+ return self.renderer