summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-08-04 14:17:02 +0200
committerClaude Paroz <claude@2xlibre.net>2012-08-04 14:22:23 +0200
commit121fd109de09ece4e263e508f9034df9b583da46 (patch)
tree7f6c7399b2f2b8f4b0942a79726faae40f41f3ec /tests
parent10f979fd92000de1ac9713351f5cb749e2cbca03 (diff)
Fixed #5524 -- Do not remove cleaned_data when a form fails validation
cleaned_data is no longer deleted when form validation fails but only contains the data that did validate. Thanks to the various contributors to this patch (see ticket).
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/model_forms/tests.py3
-rw-r--r--tests/regressiontests/forms/tests/forms.py24
2 files changed, 5 insertions, 22 deletions
diff --git a/tests/modeltests/model_forms/tests.py b/tests/modeltests/model_forms/tests.py
index fc37a25872..1da7f583be 100644
--- a/tests/modeltests/model_forms/tests.py
+++ b/tests/modeltests/model_forms/tests.py
@@ -638,8 +638,7 @@ class OldFormForXTests(TestCase):
f = BaseCategoryForm({'name': '', 'slug': 'not a slug!', 'url': 'foo'})
self.assertEqual(f.errors['name'], ['This field is required.'])
self.assertEqual(f.errors['slug'], ["Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."])
- with self.assertRaises(AttributeError):
- f.cleaned_data
+ self.assertEqual(f.cleaned_data, {'url': 'foo'})
with self.assertRaises(ValueError):
f.save()
f = BaseCategoryForm({'name': '', 'slug': '', 'url': 'foo'})
diff --git a/tests/regressiontests/forms/tests/forms.py b/tests/regressiontests/forms/tests/forms.py
index 7e1c8384a0..a8a28ba806 100644
--- a/tests/regressiontests/forms/tests/forms.py
+++ b/tests/regressiontests/forms/tests/forms.py
@@ -82,11 +82,7 @@ class FormsTestCase(TestCase):
self.assertEqual(p.errors['last_name'], ['This field is required.'])
self.assertEqual(p.errors['birthday'], ['This field is required.'])
self.assertFalse(p.is_valid())
- try:
- p.cleaned_data
- self.fail('Attempts to access cleaned_data when validation fails should fail.')
- except AttributeError:
- pass
+ self.assertEqual(p.cleaned_data, {})
self.assertHTMLEqual(str(p), """<tr><th><label for="id_first_name">First name:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="first_name" id="id_first_name" /></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="last_name" id="id_last_name" /></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th><td><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="birthday" id="id_birthday" /></td></tr>""")
@@ -145,11 +141,7 @@ class FormsTestCase(TestCase):
* This field is required.
* birthday
* This field is required.""")
- try:
- p.cleaned_data
- self.fail('Attempts to access cleaned_data when validation fails should fail.')
- except AttributeError:
- pass
+ self.assertEqual(p.cleaned_data, {'last_name': 'Lennon'})
self.assertEqual(p['first_name'].errors, ['This field is required.'])
self.assertHTMLEqual(p['first_name'].errors.as_ul(), '<ul class="errorlist"><li>This field is required.</li></ul>')
self.assertEqual(p['first_name'].errors.as_text(), '* This field is required.')
@@ -1678,11 +1670,7 @@ class FormsTestCase(TestCase):
form = SongForm(data, empty_permitted=False)
self.assertFalse(form.is_valid())
self.assertEqual(form.errors, {'name': ['This field is required.'], 'artist': ['This field is required.']})
- try:
- form.cleaned_data
- self.fail('Attempts to access cleaned_data when validation fails should fail.')
- except AttributeError:
- pass
+ self.assertEqual(form.cleaned_data, {})
# Now let's show what happens when empty_permitted=True and the form is empty.
form = SongForm(data, empty_permitted=True)
@@ -1696,11 +1684,7 @@ class FormsTestCase(TestCase):
form = SongForm(data, empty_permitted=False)
self.assertFalse(form.is_valid())
self.assertEqual(form.errors, {'name': ['This field is required.']})
- try:
- form.cleaned_data
- self.fail('Attempts to access cleaned_data when validation fails should fail.')
- except AttributeError:
- pass
+ self.assertEqual(form.cleaned_data, {'artist': 'The Doors'})
# If a field is not given in the data then None is returned for its data. Lets
# make sure that when checking for empty_permitted that None is treated