diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2011-02-05 06:34:04 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2011-02-05 06:34:04 +0000 |
| commit | ebd0a6a09ff95d42b0feec82d8509ffa009eb05b (patch) | |
| tree | a5d0c58cb51672e225ec84c7090f9c0893a5b06b /tests/regressiontests | |
| parent | 0e4d8d47b0cc8f1d1930ec1b59204313f42412e7 (diff) | |
[1.2.X] Fixed #15167 -- Ensure that non-form errors are always part of an ErrorList. Thanks to Harm Geerts for the report and patch.
Backport of r15424 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15425 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests')
| -rw-r--r-- | tests/regressiontests/model_formsets_regress/tests.py | 26 |
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 36fdae258b..cadfcd5cc5 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 @@ -192,6 +193,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 |
