From 85427fa0479aefd59bd55dca397b9a36277edade Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 14 Jul 2008 07:31:31 +0000 Subject: Less magical templated view model: make custom template views responsible for knowing their template's name. --- repoze/bfg/tests/test_view.py | 64 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 repoze/bfg/tests/test_view.py (limited to 'repoze/bfg/tests/test_view.py') diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py new file mode 100644 index 000000000..7d87b9c83 --- /dev/null +++ b/repoze/bfg/tests/test_view.py @@ -0,0 +1,64 @@ +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 ViewTests(unittest.TestCase): + def _getTargetClass(self): + from repoze.bfg.view import View + return View + + def _makeOne(self, *arg, **kw): + klass = self._getTargetClass() + return klass(*arg, **kw) + + def test_call(self): + view = self._makeOne(None, None) + self.assertRaises(NotImplementedError, view) + +class TemplateViewTests(unittest.TestCase, Base): + def setUp(self): + Base.setUp(self) + + def tearDown(self): + Base.tearDown(self) + + def _getTargetClass(self): + from repoze.bfg.view import TemplateView + return TemplateView + + def _makeOne(self, *arg, **kw): + klass = self._getTargetClass() + return klass(*arg, **kw) + + def test_call(self): + self._zcmlConfigure() + view = self._makeOne(None, None) + view.template = self._getTemplatePath('minimal.pt') + result = view(foo='foo') + from webob import Response + self.failUnless(isinstance(result, Response)) + self.assertEqual(result.app_iter, ['
\n
']) + self.assertEqual(result.status, '200 OK') + self.assertEqual(len(result.headerlist), 2) + + def test_call_no_template(self): + self._zcmlConfigure() + view = self._makeOne(None, None) + self.assertRaises(ValueError, view) -- cgit v1.2.3