Skip to content

Commit

Permalink
Add redirect status codes (303, 307) to the set which prevent form re…
Browse files Browse the repository at this point in the history
…ndering.

Fixes LP #1017884.

Index: CHANGES.txt
===================================================================
--- CHANGES.txt	(revision 126914)
+++ CHANGES.txt	(working copy)
@@ -5,6 +5,9 @@
 4.2.0 (unreleased)
 ==================
 
+- LP #1017884:  Add redirect status codes (303, 307) to the set which prevent
+  form rendering.
+
 - Replaced deprecated ``zope.component.adapts`` usage with equivalent
   ``zope.component.adapter`` decorator.
  • Loading branch information
tseaver committed Jun 26, 2012
1 parent de28df9 commit 0bfeddb
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
3 changes: 3 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Changes
4.2.0 (unreleased)
==================

- LP #1017884: Add redirect status codes (303, 307) to the set which prevent
form rendering.

- Replaced deprecated ``zope.component.adapts`` usage with equivalent
``zope.component.adapter`` decorator.

Expand Down
2 changes: 1 addition & 1 deletion src/zope/formlib/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ def render(self):

def __call__(self):
self.update()
if self.request.response.getStatus() in [301, 302]:
if self.request.response.getStatus() in [301, 302, 303, 307]:
# Avoid rendering if the action caused a redirect.
result = self.form_result or ''
else:
Expand Down
4 changes: 2 additions & 2 deletions src/zope/formlib/tests/test_form.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ def _makeOne(self, context=None, request=None):
return self._getTargetClass()(context, request)

def test___call___does_not_render_on_redirects(self):
for status in (301, 302):
for status in (301, 302, 303, 307):
request = self._makeRequest()
request.response.setStatus(status)
def _raise(self, *args, **kw):
def _raise(*args, **kw):
self.fail("DON'T GO HERE")
form = self._makeOne(request=request)
form.form_fields = form.actions = ()
Expand Down

0 comments on commit 0bfeddb

Please sign in to comment.