summaryrefslogtreecommitdiff
path: root/docs/narr/MyProject
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-11-14 01:19:48 +0000
committerChris McDonough <chrism@agendaless.com>2008-11-14 01:19:48 +0000
commit38b6635fd101e51717d2daf7cc35f09590536cda (patch)
tree30df2549d801dfc0ae82da74fb90899deb8cd583 /docs/narr/MyProject
parenteb6afe916a2c7456d4398e2f0df04ebacccd7f30 (diff)
downloadpyramid-38b6635fd101e51717d2daf7cc35f09590536cda.tar.gz
pyramid-38b6635fd101e51717d2daf7cc35f09590536cda.tar.bz2
pyramid-38b6635fd101e51717d2daf7cc35f09590536cda.zip
- Change paster template ``tests.py`` to include a true unit test.
Retain old test as an integration test. Update documentation.
Diffstat (limited to 'docs/narr/MyProject')
-rw-r--r--docs/narr/MyProject/myproject/tests.py76
1 files changed, 52 insertions, 24 deletions
diff --git a/docs/narr/MyProject/myproject/tests.py b/docs/narr/MyProject/myproject/tests.py
index d3d4628ff..4c2f6a9ec 100644
--- a/docs/narr/MyProject/myproject/tests.py
+++ b/docs/narr/MyProject/myproject/tests.py
@@ -1,33 +1,66 @@
import unittest
+from zope.testing.cleanup import cleanUp
+from repoze.bfg import testing
+
class ViewTests(unittest.TestCase):
+
+ """ These tests are unit tests for the view. They test the
+ functionality of *only* the view. They register and use dummy
+ implementations of repoze.bfg functionality to allow you to avoid
+ testing 'too much'"""
+
def setUp(self):
- # This sets up the application registry with the registrations
- # your application declares in its configure.zcml (including
- # dependent registrations for repoze.bfg itself). This is a
- # heavy-hammer way of making sure that your tests have enough
- # context to run properly. But tests will run faster if you
- # use only the registrations you need programmatically, so you
- # should explore ways to do that rather than rely on ZCML (see
- # the repoze.bfg tests for inspiration).
- self._cleanup()
+ """ cleanUp() is required to clear out the application registry
+ between tests (done in setUp for good measure too)
+ """
+ cleanUp()
+
+ def tearDown(self):
+ """ cleanUp() is required to clear out the application registry
+ between tests
+ """
+ cleanUp()
+
+ def test_my_view(self):
+ from myproject.views import my_view
+ context = testing.DummyModel()
+ request = testing.DummyRequest()
+ renderer = testing.registerDummyRenderer('templates/mytemplate.pt')
+ response = my_view(context, request)
+ self.assertEqual(renderer.project, 'myproject')
+
+class ViewIntegrationTests(unittest.TestCase):
+ """ These tests are integration tests for the view. These test
+ the functionality the view *and* its integration with the rest of
+ the repoze.bfg framework. They cause the entire environment to be
+ set up and torn down as if your application was running 'for
+ real'. This is a heavy-hammer way of making sure that your tests
+ have enough context to run properly, and it tests your view's
+ integration with the rest of BFG. You should not use this style
+ of test to perform 'true' unit testing as tests will run faster
+ and will be easier to write if you use the testing facilities
+ provided by bfg and only the registrations you need, as in the
+ above ViewTests.
+ """
+ def setUp(self):
+ """ This sets up the application registry with the
+ registrations your application declares in its configure.zcml
+ (including dependent registrations for repoze.bfg itself).
+ """
+ cleanUp()
import myproject
import zope.configuration.xmlconfig
- zope.configuration.xmlconfig.file('configure.zcml',
- package=myproject)
+ zope.configuration.xmlconfig.file('configure.zcml', package=myproject)
def tearDown(self):
- self._cleanup()
-
- def _cleanup(self):
- # this clears the application registry
- from zope.testing.cleanup import cleanUp
+ """ Clear out the application registry """
cleanUp()
-
+
def test_my_view(self):
from myproject.views import my_view
- context = DummyContext()
- request = DummyRequest()
+ context = testing.DummyModel()
+ request = testing.DummyRequest()
result = my_view(context, request)
self.assertEqual(result.status, '200 OK')
body = result.app_iter[0]
@@ -38,8 +71,3 @@ class ViewTests(unittest.TestCase):
self.assertEqual(result.headerlist[1], ('Content-Length',
str(len(body))))
-class DummyContext:
- pass
-
-class DummyRequest:
- pass