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)