summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGrzegorz Slusarek <grzegorz.slusarek@gmail.com>2014-12-08 23:37:59 +0100
committerTim Graham <timograham@gmail.com>2014-12-12 08:50:38 -0500
commit4b96e862b4674e85d1a28f2849685aa3135bc557 (patch)
treedab7d6b4d17fe76f88198dfc26db423ac2a3e17c /tests
parenta189e9f0d03bfdbf5008533358c2941f15b86d58 (diff)
[1.7.x] Fixed #23674 -- Fixed a crash when a MultiValueField has invalid data.
Backport of 0dea81cd6d34b3e41cc4bbec99b5fdf06142b09e from master
Diffstat (limited to 'tests')
-rw-r--r--tests/forms_tests/tests/test_forms.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py
index b79f53d6cb..6c13cf4177 100644
--- a/tests/forms_tests/tests/test_forms.py
+++ b/tests/forms_tests/tests/test_forms.py
@@ -1952,6 +1952,22 @@ class FormsTestCase(TestCase):
self.assertFalse(id(field2.fields[0].choices) ==
id(field.fields[0].choices))
+ def test_multivalue_initial_data(self):
+ """
+ #23674 -- invalid initial data should not break form.changed_data()
+ """
+ class DateAgeField(MultiValueField):
+ def __init__(self, fields=(), *args, **kwargs):
+ fields = (DateField(label="Date"), IntegerField(label="Age"))
+ super(DateAgeField, self).__init__(fields=fields, *args, **kwargs)
+
+ class DateAgeForm(Form):
+ date_age = DateAgeField()
+
+ data = {"date_age": ["1998-12-06", 16]}
+ form = DateAgeForm(data, initial={"date_age": ["200-10-10", 14]})
+ self.assertTrue(form.has_changed())
+
def test_multivalue_optional_subfields(self):
class PhoneField(MultiValueField):
def __init__(self, *args, **kwargs):