summaryrefslogtreecommitdiff
path: root/tests/regressiontests/model_formsets_regress/tests.py
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2011-02-05 06:33:16 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2011-02-05 06:33:16 +0000
commitb3085f8ae5d78adacce6968966405247b89f5dd7 (patch)
treea48fc9bd967a6dbfac97e4aab5f0f60b48b6483e /tests/regressiontests/model_formsets_regress/tests.py
parent7f65c338fc16cf26b351e83e7c3ec125b74abb02 (diff)
Fixed #15167 -- Ensure that non-form errors are always part of an ErrorList. Thanks to Harm Geerts for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15424 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/model_formsets_regress/tests.py')
-rw-r--r--tests/regressiontests/model_formsets_regress/tests.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/regressiontests/model_formsets_regress/tests.py b/tests/regressiontests/model_formsets_regress/tests.py
index 308bccebf1..3354fc5b7f 100644
--- a/tests/regressiontests/model_formsets_regress/tests.py
+++ b/tests/regressiontests/model_formsets_regress/tests.py
@@ -1,4 +1,5 @@
from django import forms
+from django.forms.util import ErrorDict, ErrorList
from django.forms.models import modelform_factory, inlineformset_factory, modelformset_factory
from django.test import TestCase
@@ -200,6 +201,31 @@ class InlineFormsetTests(TestCase):
["<Host: matrix.de.eu.dal.net>", "<Host: tranquility.hub.dal.net>"]
)
+class FormsetTests(TestCase):
+ def test_error_class(self):
+ '''
+ Test the type of Formset and Form error attributes
+ '''
+ Formset = modelformset_factory(User)
+ data = {
+ 'form-TOTAL_FORMS': u'2',
+ 'form-INITIAL_FORMS': u'0',
+ 'form-MAX_NUM_FORMS': u'0',
+ 'form-0-id': '',
+ 'form-0-username': u'apollo13',
+ 'form-0-serial': u'1',
+ 'form-1-id': '',
+ 'form-1-username': u'apollo13',
+ 'form-1-serial': u'2',
+ }
+ formset = Formset(data)
+ # check if the returned error classes are correct
+ # note: formset.errors returns a list as documented
+ self.assertTrue(isinstance(formset.errors, list))
+ self.assertTrue(isinstance(formset.non_form_errors(), ErrorList))
+ for form in formset.forms:
+ self.assertTrue(isinstance(form.errors, ErrorDict))
+ self.assertTrue(isinstance(form.non_field_errors(), ErrorList))
class CustomWidget(forms.CharField):
pass