diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-09-26 06:42:53 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-09-26 06:42:53 +0000 |
| commit | 01a6e567a20096f6033cc603667f4e900d2a44c3 (patch) | |
| tree | a87431383a63dbafbb5cccdfa7679b9187bdfc29 /repoze/bfg/tests/test_chameleon_zpt.py | |
| parent | 26216e5526ca56d886d2348f9e1f09b86622aa72 (diff) | |
| download | pyramid-01a6e567a20096f6033cc603667f4e900d2a44c3.tar.gz pyramid-01a6e567a20096f6033cc603667f4e900d2a44c3.tar.bz2 pyramid-01a6e567a20096f6033cc603667f4e900d2a44c3.zip | |
Move to Chameleon.
Diffstat (limited to 'repoze/bfg/tests/test_chameleon_zpt.py')
| -rw-r--r-- | repoze/bfg/tests/test_chameleon_zpt.py | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_chameleon_zpt.py b/repoze/bfg/tests/test_chameleon_zpt.py new file mode 100644 index 000000000..3b977bcbf --- /dev/null +++ b/repoze/bfg/tests/test_chameleon_zpt.py @@ -0,0 +1,139 @@ +import unittest + +from zope.component.testing import PlacelessSetup + +class Base(PlacelessSetup): + def setUp(self): + PlacelessSetup.setUp(self) + + def tearDown(self): + PlacelessSetup.tearDown(self) + + def _zcmlConfigure(self): + import repoze.bfg + import zope.configuration.xmlconfig + zope.configuration.xmlconfig.file('configure.zcml', package=repoze.bfg) + + def _getTemplatePath(self, name): + import os + here = os.path.abspath(os.path.dirname(__file__)) + return os.path.join(here, 'fixtures', name) + +class ZPTTemplateFactoryTests(unittest.TestCase, Base): + def setUp(self): + Base.setUp(self) + + def tearDown(self): + Base.tearDown(self) + + def _getTargetClass(self): + from repoze.bfg.chameleon_zpt import ZPTTemplateFactory + return ZPTTemplateFactory + + def _makeOne(self, *arg, **kw): + klass = self._getTargetClass() + return klass(*arg, **kw) + + def test_instance_implements_ITemplate(self): + from zope.interface.verify import verifyObject + from repoze.bfg.interfaces import ITemplate + path = self._getTemplatePath('minimal.pt') + verifyObject(ITemplate, self._makeOne(path)) + + def test_class_implements_ITemplate(self): + from zope.interface.verify import verifyClass + from repoze.bfg.interfaces import ITemplate + verifyClass(ITemplate, self._getTargetClass()) + + def test_call(self): + self._zcmlConfigure() + minimal = self._getTemplatePath('minimal.pt') + instance = self._makeOne(minimal) + result = instance() + self.failUnless(isinstance(result, str)) + self.assertEqual(result, '<div>\n</div>\n') + +class RenderTemplateTests(unittest.TestCase, Base): + def setUp(self): + Base.setUp(self) + + def tearDown(self): + Base.tearDown(self) + + def _getFUT(self): + from repoze.bfg.chameleon_zpt import render_template + return render_template + + def test_it(self): + self._zcmlConfigure() + minimal = self._getTemplatePath('minimal.pt') + render = self._getFUT() + result = render(minimal) + self.failUnless(isinstance(result, str)) + self.assertEqual(result, '<div>\n</div>\n') + +class RenderTemplateToResponseTests(unittest.TestCase, Base): + def setUp(self): + Base.setUp(self) + + def tearDown(self): + Base.tearDown(self) + + def _getFUT(self): + from repoze.bfg.chameleon_zpt import render_template_to_response + return render_template_to_response + + def test_it(self): + self._zcmlConfigure() + minimal = self._getTemplatePath('minimal.pt') + render = self._getFUT() + result = render(minimal) + from webob import Response + self.failUnless(isinstance(result, Response)) + self.assertEqual(result.app_iter, ['<div>\n</div>\n']) + self.assertEqual(result.status, '200 OK') + self.assertEqual(len(result.headerlist), 2) + +class GetTemplateTests(unittest.TestCase, Base): + def setUp(self): + Base.setUp(self) + + def tearDown(self): + Base.tearDown(self) + + def _getFUT(self): + from repoze.bfg.chameleon_zpt import get_template + return get_template + + def test_nonabs_registered(self): + self._zcmlConfigure() + from zope.component import getGlobalSiteManager + from zope.component import queryUtility + from repoze.bfg.chameleon_zpt import ZPTTemplateFactory + from repoze.bfg.interfaces import ITemplate + minimal = self._getTemplatePath('minimal.pt') + utility = ZPTTemplateFactory(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_unregistered(self): + self._zcmlConfigure() + from zope.component import getGlobalSiteManager + from zope.component import queryUtility + from repoze.bfg.chameleon_zpt import ZPTTemplateFactory + from repoze.bfg.interfaces import ITemplate + minimal = self._getTemplatePath('minimal.pt') + self.assertEqual(queryUtility(ITemplate, minimal), None) + utility = ZPTTemplateFactory(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) + + |
