summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-03-12 15:51:00 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-03-12 15:51:00 +0000
commit4120a181e9109383ab35df52dbb3621302a75a72 (patch)
tree0ba0ea974006580a0d1936d94b95e2f5db259739 /tests/regressiontests/forms
parentfbf00078e1bdd702f95c7b56277fe602b3bda9e1 (diff)
Fixed #11801 -- Corrected form validation to ensure you can still get deleted_forms and ordered_forms when a form that is being deleted doesn't validate. Thanks to dantallis for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12771 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms')
-rw-r--r--tests/regressiontests/forms/formsets.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/formsets.py b/tests/regressiontests/forms/formsets.py
index d9d4082f71..3eecb7f7be 100644
--- a/tests/regressiontests/forms/formsets.py
+++ b/tests/regressiontests/forms/formsets.py
@@ -332,6 +332,26 @@ If we remove the deletion flag now we will have our validation back.
>>> formset.is_valid()
False
+Should be able to get deleted_forms from a valid formset even if a
+deleted form would have been invalid.
+
+>>> class Person(Form):
+... name = CharField()
+
+>>> PeopleForm = formset_factory(
+... form=Person,
+... can_delete=True)
+
+>>> p = PeopleForm(
+... {'form-0-name': u'', 'form-0-DELETE': u'on', # no name!
+... 'form-TOTAL_FORMS': 1, 'form-INITIAL_FORMS': 1,
+... 'form-MAX_NUM_FORMS': 1})
+
+>>> p.is_valid()
+True
+>>> len(p.deleted_forms)
+1
+
# FormSets with ordering ######################################################
We can also add ordering ability to a FormSet with an agrument to
@@ -492,6 +512,26 @@ True
>>> [form.cleaned_data for form in formset.deleted_forms]
[{'votes': 900, 'DELETE': True, 'ORDER': 2, 'choice': u'Fergie'}]
+Should be able to get ordered forms from a valid formset even if a
+deleted form would have been invalid.
+
+>>> class Person(Form):
+... name = CharField()
+
+>>> PeopleForm = formset_factory(
+... form=Person,
+... can_delete=True,
+... can_order=True)
+
+>>> p = PeopleForm(
+... {'form-0-name': u'', 'form-0-DELETE': u'on', # no name!
+... 'form-TOTAL_FORMS': 1, 'form-INITIAL_FORMS': 1,
+... 'form-MAX_NUM_FORMS': 1})
+
+>>> p.is_valid()
+True
+>>> p.ordered_forms
+[]
# FormSet clean hook ##########################################################