summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_view.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-14 07:31:31 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-14 07:31:31 +0000
commit85427fa0479aefd59bd55dca397b9a36277edade (patch)
treecafad1ccb7d3f4c9a0b953adba78cd8caae70e93 /repoze/bfg/tests/test_view.py
parent9fcb68e1563e22eed1fd7cbbd10993cff30242f8 (diff)
downloadpyramid-85427fa0479aefd59bd55dca397b9a36277edade.tar.gz
pyramid-85427fa0479aefd59bd55dca397b9a36277edade.tar.bz2
pyramid-85427fa0479aefd59bd55dca397b9a36277edade.zip
Less magical templated view model: make custom template views responsible for
knowing their template's name.
Diffstat (limited to 'repoze/bfg/tests/test_view.py')
-rw-r--r--repoze/bfg/tests/test_view.py64
1 files changed, 64 insertions, 0 deletions
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, ['<div>\n</div>'])
+ 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)