[Checkins] SVN: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/ Moved tests into subdirectory in order to separate them from application code. Also, tests are now picked up by zope.testrunner without messing with test-patterns. Dropped z3c.testsetup, replaced by unittest and functional unittest + description how to register tests.

Jan-Jaap Driessen jdriessen at thehealthagency.com
Fri Jan 14 06:51:38 EST 2011


Log message for revision 119579:
  
  Moved tests into subdirectory in order to separate them from application code. Also, tests are now picked up by zope.testrunner without messing with test-patterns. Dropped z3c.testsetup, replaced by unittest and functional unittest + description how to register tests.

Changed:
  D   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/app.txt_tmpl
  D   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/ftesting.zcml_tmpl
  A   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/
  A   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/__init__.py
  A   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/app.txt_tmpl
  A   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/ftesting.zcml_tmpl
  A   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/test_+project_lowercase+.py_tmpl
  A   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/tests.py_tmpl
  D   grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests.py_tmpl

-=-
Deleted: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/app.txt_tmpl
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/app.txt_tmpl	2011-01-14 10:42:01 UTC (rev 119578)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/app.txt_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -1,42 +0,0 @@
-Do a functional doctest test on the app.
-========================================
-
-Let's first create an instance of ${app_class_name} at the top level:
-
-    >>> from ${package}.app import ${app_class_name}
-    >>> root = getRootFolder()
-    >>> root['app'] = ${app_class_name}()
-
-Run tests in the testbrowser
-----------------------------
-
-The zope.testbrowser.browser module exposes a Browser class that
-simulates a web browser similar to Mozilla Firefox or IE.  We use that
-to test how our application behaves in a browser.  For more
-information, see http://pypi.python.org/pypi/zope.testbrowser.
-
-Create a browser and visit the instance you just created:
-
-    >>> from zope.app.wsgi.testlayer import Browser
-    >>> browser = Browser()
-    >>> browser.open('http://localhost/app')
-
-Check some basic information about the page you visit:
-
-    >>> browser.url
-    'http://localhost/app'
-
-    >>> print browser.contents
-    <html>
-    <head>
-    <link rel="stylesheet" type="text/css" href="http://localhost/fanstatic/grokexample/style.css" />
-    <base href="http://localhost/app/@@index" />
-    </head>
-    <body>
-      <h1>Congratulations!</h1>
-      <p>Your Grok application is up and running.
-      Edit <code>${package}/app_templates/index.pt</code> to change
-      this page.</p>
-      <img src="http://localhost/fanstatic/${project_lowercase}/evencaveman.jpg" />
-    </body>
-    </html>

Deleted: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/ftesting.zcml_tmpl
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/ftesting.zcml_tmpl	2011-01-14 10:42:01 UTC (rev 119578)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/ftesting.zcml_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -1,47 +0,0 @@
-<configure
-   xmlns="http://namespaces.zope.org/zope"
-   i18n_domain="${package}"
-   package="${package}"
-   >
-
-  <include package="${package}" />
-
-  <!-- Typical functional testing security setup -->
-  <securityPolicy
-      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
-      />
-
-  <unauthenticatedPrincipal
-      id="zope.anybody"
-      title="Unauthenticated User"
-      />
-  <unauthenticatedGroup
-      id="zope.Anybody"
-      title="Unauthenticated Users"
-      />
-  <authenticatedGroup
-      id="zope.Authenticated"
-      title="Authenticated Users"
-      />
-  <everybodyGroup
-      id="zope.Everybody"
-      title="All Users"
-      />
-
-  <grant
-      permission="zope.View"
-      principal="zope.Everybody"
-      />
-
-  <principal
-      id="zope.mgr"
-      title="Manager"
-      login="mgr"
-      password="mgrpw"
-      />
-
-  <role id="zope.Manager" title="Site Manager" />
-  <grantAll role="zope.Manager" />
-  <grant role="zope.Manager" principal="zope.mgr" />
-
-</configure>

Copied: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/app.txt_tmpl (from rev 119573, grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/app.txt_tmpl)
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/app.txt_tmpl	                        (rev 0)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/app.txt_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -0,0 +1,42 @@
+Do a functional doctest test on the app.
+========================================
+
+Let's first create an instance of ${app_class_name} at the top level:
+
+    >>> from ${package}.app import ${app_class_name}
+    >>> root = getRootFolder()
+    >>> root['app'] = ${app_class_name}()
+
+Run tests in the testbrowser
+----------------------------
+
+The zope.testbrowser.browser module exposes a Browser class that
+simulates a web browser similar to Mozilla Firefox or IE.  We use that
+to test how our application behaves in a browser.  For more
+information, see http://pypi.python.org/pypi/zope.testbrowser.
+
+Create a browser and visit the instance you just created:
+
+    >>> from zope.app.wsgi.testlayer import Browser
+    >>> browser = Browser()
+    >>> browser.open('http://localhost/app')
+
+Check some basic information about the page you visit:
+
+    >>> browser.url
+    'http://localhost/app'
+
+    >>> print browser.contents
+    <html>
+    <head>
+    <link rel="stylesheet" type="text/css" href="http://localhost/fanstatic/grokexample/style.css" />
+    <base href="http://localhost/app/@@index" />
+    </head>
+    <body>
+      <h1>Congratulations!</h1>
+      <p>Your Grok application is up and running.
+      Edit <code>${package}/app_templates/index.pt</code> to change
+      this page.</p>
+      <img src="http://localhost/fanstatic/${project_lowercase}/evencaveman.jpg" />
+    </body>
+    </html>

Copied: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/ftesting.zcml_tmpl (from rev 119573, grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/ftesting.zcml_tmpl)
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/ftesting.zcml_tmpl	                        (rev 0)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/ftesting.zcml_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -0,0 +1,47 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   i18n_domain="${package}"
+   package="${package}"
+   >
+
+  <include package="${package}" />
+
+  <!-- Typical functional testing security setup -->
+  <securityPolicy
+      component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+      />
+
+  <unauthenticatedPrincipal
+      id="zope.anybody"
+      title="Unauthenticated User"
+      />
+  <unauthenticatedGroup
+      id="zope.Anybody"
+      title="Unauthenticated Users"
+      />
+  <authenticatedGroup
+      id="zope.Authenticated"
+      title="Authenticated Users"
+      />
+  <everybodyGroup
+      id="zope.Everybody"
+      title="All Users"
+      />
+
+  <grant
+      permission="zope.View"
+      principal="zope.Everybody"
+      />
+
+  <principal
+      id="zope.mgr"
+      title="Manager"
+      login="mgr"
+      password="mgrpw"
+      />
+
+  <role id="zope.Manager" title="Site Manager" />
+  <grantAll role="zope.Manager" />
+  <grant role="zope.Manager" principal="zope.mgr" />
+
+</configure>

Added: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/test_+project_lowercase+.py_tmpl
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/test_+project_lowercase+.py_tmpl	                        (rev 0)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/test_+project_lowercase+.py_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -0,0 +1,31 @@
+import unittest
+
+from zope.component import queryMultiAdapter
+from zope.publisher.browser import TestRequest
+
+from zope.fanstatic.testing import ZopeFanstaticBrowserLayer
+
+import ${package}.tests
+from ${package}.app import ${app_class_name}
+
+# In this file we create a unittest, a functional unittest.
+
+class MyTestCase(unittest.TestCase):
+
+    def test_foo(self):
+        self.assertEqual(1, 1)
+
+browser_layer = ZopeFanstaticBrowserLayer(${package}.tests)
+
+class MyFunctionalTestCase(unittest.TestCase):
+
+    layer = browser_layer
+
+    def test_foo(self):
+        index = queryMultiAdapter((${app_class_name}(), TestRequest()), name='index')
+        self.assertNotEqual(index, None)
+
+        # There is no view called 'index2'
+        index2 = queryMultiAdapter((${app_class_name}(), TestRequest()), name='index2')
+        self.assertEqual(index2, None)
+

Copied: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/tests.py_tmpl (from rev 119573, grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests.py_tmpl)
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/tests.py_tmpl	                        (rev 0)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests/tests.py_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -0,0 +1,28 @@
+# The tests in test_${project_lowercase}.py are picked up by zope.testrunner.
+
+# When decorating a unittest.TestCase or doctest with a layer, the layer is
+# used to group tests and execute setup and teardown of the grok environment
+# for the test to run in.
+
+import unittest
+import doctest
+
+from zope.fanstatic.testing import ZopeFanstaticBrowserLayer
+
+import ${package}.tests
+
+browser_layer = ZopeFanstaticBrowserLayer(${package}.tests)
+
+def test_suite():
+    suite = unittest.TestSuite()
+
+    app_test = doctest.DocFileSuite('app.txt', # Add more doctest files here.
+        optionflags = (
+            doctest.ELLIPSIS +
+            doctest.NORMALIZE_WHITESPACE +
+            doctest.REPORT_NDIFF),
+        globs={'getRootFolder': browser_layer.getRootFolder})
+    app_test.layer = browser_layer
+
+    suite.addTest(app_test)
+    return suite

Deleted: grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests.py_tmpl
===================================================================
--- grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests.py_tmpl	2011-01-14 10:42:01 UTC (rev 119578)
+++ grokproject/branches/janjaapdriessen-fanstatic/grokproject/template/src/+package+/tests.py_tmpl	2011-01-14 11:51:37 UTC (rev 119579)
@@ -1,22 +0,0 @@
-import unittest
-import doctest
-
-from zope.fanstatic.testing import ZopeFanstaticBrowserLayer
-
-import ${package}
-
-browser_layer = ZopeFanstaticBrowserLayer(${package})
-
-def test_suite():
-    suite = unittest.TestSuite()
-
-    app_test = doctest.DocFileSuite('app.txt',
-        optionflags = (
-            doctest.ELLIPSIS +
-            doctest.NORMALIZE_WHITESPACE +
-            doctest.REPORT_NDIFF),
-        globs={'getRootFolder': browser_layer.getRootFolder})
-    app_test.layer = browser_layer
-
-    suite.addTest(app_test)
-    return suite



More information about the checkins mailing list