summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_templating.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-07-01 17:58:07 +0000
committerChris McDonough <chrism@agendaless.com>2009-07-01 17:58:07 +0000
commit88ac1b58af928fcf9283b3aa15283782181c880d (patch)
tree2afce500a9295fb16e9b4069eb666944b63c417f /repoze/bfg/tests/test_templating.py
parent9686fec0c85c2624853eeaf59e738e23b4981ebe (diff)
downloadpyramid-88ac1b58af928fcf9283b3aa15283782181c880d.tar.gz
pyramid-88ac1b58af928fcf9283b3aa15283782181c880d.tar.bz2
pyramid-88ac1b58af928fcf9283b3aa15283782181c880d.zip
- Make it possible to pass strings in the form
"package_name:relative/path" to APIs like ``render_template``, ``render_template_to_response``, and ``get_template``. Sometimes the package in which a caller lives is a direct namespace package, so the module which is returned is semi-useless for navigating from.
Diffstat (limited to 'repoze/bfg/tests/test_templating.py')
-rw-r--r--repoze/bfg/tests/test_templating.py48
1 files changed, 42 insertions, 6 deletions
diff --git a/repoze/bfg/tests/test_templating.py b/repoze/bfg/tests/test_templating.py
index 361cf6f7e..6b317fb7d 100644
--- a/repoze/bfg/tests/test_templating.py
+++ b/repoze/bfg/tests/test_templating.py
@@ -45,13 +45,22 @@ class TestRendererFromCache(unittest.TestCase):
result = self._callFUT('foo/bar', None)
self.failUnless(renderer is result)
- def test_relpath_notfound(self):
- import os
- here = os.path.dirname(__file__)
- abspath = os.path.join(here, 'wont/exist')
+ def test_relpath_is_package_registered(self):
renderer = {}
+ from repoze.bfg.interfaces import ITemplateRenderer
+ testing.registerUtility(renderer, ITemplateRenderer, name='foo:bar/baz')
+ result = self._callFUT('foo:bar/baz', None)
+ self.failUnless(renderer is result)
+
+ def test_relpath_notfound(self):
self.assertRaises(ValueError, self._callFUT, 'wont/exist', None)
+ def test_relpath_is_package_notfound(self):
+ from repoze.bfg import tests
+ module_name = tests.__name__
+ self.assertRaises(ValueError, self._callFUT,
+ '%s:wont/exist' % module_name, None)
+
def test_relpath_alreadyregistered(self):
from repoze.bfg.interfaces import ITemplateRenderer
from repoze.bfg import tests
@@ -63,6 +72,17 @@ class TestRendererFromCache(unittest.TestCase):
result = self._callFUT('test_templating.py', None)
self.failUnless(result is renderer)
+ def test_relpath_is_package_alreadyregistered(self):
+ from repoze.bfg.interfaces import ITemplateRenderer
+ from repoze.bfg import tests
+ module_name = tests.__name__
+ relpath = 'test_templating.py'
+ spec = '%s:%s' % (module_name, relpath)
+ renderer = {}
+ testing.registerUtility(renderer, ITemplateRenderer, name=spec)
+ result = self._callFUT(spec, None)
+ self.failUnless(result is renderer)
+
def test_relpath_notyetregistered(self):
import os
from repoze.bfg.tests import test_templating
@@ -78,7 +98,23 @@ class TestRendererFromCache(unittest.TestCase):
self.assertEqual(factory.path, path)
self.assertEqual(factory.kw, {})
- def test_relpath_notyetregistered_reload_resources_true(self):
+ def test_relpath_is_package_notyetregistered(self):
+ import os
+ from repoze.bfg import tests
+ module_name = tests.__name__
+ relpath = 'test_templating.py'
+ renderer = {}
+ factory = DummyFactory(renderer)
+ spec = '%s:%s' % (module_name, relpath)
+ result = self._callFUT(spec, factory)
+ self.failUnless(result is renderer)
+ path = os.path.abspath(__file__)
+ if path.endswith('pyc'): # pragma: no cover
+ path = path[:-1]
+ self.assertEqual(factory.path, path)
+ self.assertEqual(factory.kw, {})
+
+ def test_reload_resources_true(self):
from zope.component import queryUtility
from repoze.bfg.interfaces import ISettings
from repoze.bfg.interfaces import ITemplateRenderer
@@ -92,7 +128,7 @@ class TestRendererFromCache(unittest.TestCase):
self.assertEqual(queryUtility(ITemplateRenderer, name=spec),
None)
- def test_relpath_notyetregistered_reload_resources_false(self):
+ def test_reload_resources_false(self):
from zope.component import queryUtility
from repoze.bfg.interfaces import ISettings
from repoze.bfg.interfaces import ITemplateRenderer