From fb1dd6b13a0e6b1ef64eac88467321d097942cd2 Mon Sep 17 00:00:00 2001 From: Marc Tamlyn Date: Thu, 8 Aug 2013 14:05:55 +0100 Subject: Form.clean() does not need to return cleaned_data. If it does, that will be used as the cleaned_data. The default implementation has been changed to match this change. --- tests/forms_tests/tests/test_extra.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/tests/test_extra.py b/tests/forms_tests/tests/test_extra.py index afdfaf5281..ba835495c6 100644 --- a/tests/forms_tests/tests/test_extra.py +++ b/tests/forms_tests/tests/test_extra.py @@ -620,6 +620,24 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): self.assertTrue(f.is_valid()) self.assertEqual(f.cleaned_data['username'], 'sirrobin') + def test_changing_cleaned_data_in_clean(self): + class UserForm(Form): + username = CharField(max_length=10) + password = CharField(widget=PasswordInput) + + def clean(self): + data = self.cleaned_data + + # Return a different dict. We have not changed self.cleaned_data. + return { + 'username': data['username'].lower(), + 'password': 'this_is_not_a_secret', + } + + f = UserForm({'username': 'SirRobin', 'password': 'blue'}) + self.assertTrue(f.is_valid()) + self.assertEqual(f.cleaned_data['username'], 'sirrobin') + def test_overriding_errorlist(self): @python_2_unicode_compatible class DivErrorList(ErrorList): -- cgit v1.3