[Zope3-checkins] SVN: zope.formlib/trunk/src/zope/formlib/tests/test_form.py Add test that z.f.form.FormBase.__call__ doesn't render on redirect.

Tres Seaver cvs-admin at zope.org
Tue Jun 26 13:25:43 UTC 2012


Log message for revision 127101:
  Add test that z.f.form.FormBase.__call__ doesn't render on redirect.

Changed:
  A   zope.formlib/trunk/src/zope/formlib/tests/test_form.py

-=-
Added: zope.formlib/trunk/src/zope/formlib/tests/test_form.py
===================================================================
--- zope.formlib/trunk/src/zope/formlib/tests/test_form.py	                        (rev 0)
+++ zope.formlib/trunk/src/zope/formlib/tests/test_form.py	2012-06-26 13:25:40 UTC (rev 127101)
@@ -0,0 +1,58 @@
+##############################################################################
+#
+# Copyright (c) 2012 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Test Browser Widget
+"""
+import unittest
+
+
+class FormBaseTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from zope.formlib.form import FormBase
+        return FormBase
+
+    def _makeContext(self, **kw):
+        class _Context(object):
+            pass
+        context = _Context()
+        for k, v in kw.items():
+            setattr(context, k, v)
+        return context
+
+    def _makeRequest(self, **kw):
+        from zope.publisher.browser import TestRequest
+        return TestRequest(**kw)
+
+    def _makeOne(self, context=None, request=None):
+        if context is None:
+            context = self._makeContext()
+        if request is None:
+            request = self._makeRequest()
+        return self._getTargetClass()(context, request)
+
+    def test___call___does_not_render_on_redirects(self):
+        for status in (301, 302):
+            request = self._makeRequest()
+            request.response.setStatus(status)
+            def _raise(self, *args, **kw):
+                self.fail("DON'T GO HERE")
+            form = self._makeOne(request=request)
+            form.form_fields = form.actions = ()
+            form.template = _raise
+            self.assertEqual(form(), '')
+
+def test_suite():
+    return unittest.TestSuite((
+        unittest.makeSuite(FormBaseTests),
+    ))



More information about the Zope3-Checkins mailing list