diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/forms_tests/tests/test_forms.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py index 3204ec9437..640f48fe44 100644 --- a/tests/forms_tests/tests/test_forms.py +++ b/tests/forms_tests/tests/test_forms.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals +import copy import datetime from django.core.files.uploadedfile import SimpleUploadedFile @@ -1793,6 +1794,26 @@ class FormsTestCase(TestCase): self.assertTrue(form.is_valid()) self.assertEqual(form.cleaned_data, {'name' : 'fname lname'}) + def test_multivalue_deep_copy(self): + """ + #19298 -- MultiValueField needs to override the default as it needs + to deep-copy subfields: + """ + class ChoicesField(MultiValueField): + def __init__(self, fields=(), *args, **kwargs): + fields = (ChoiceField(label='Rank', + choices=((1,1),(2,2))), + CharField(label='Name', max_length=10)) + super(ChoicesField, self).__init__(fields=fields, *args, **kwargs) + + + field = ChoicesField() + field2 = copy.deepcopy(field) + self.assertTrue(isinstance(field2, ChoicesField)) + self.assertFalse(id(field2.fields) == id(field.fields)) + self.assertFalse(id(field2.fields[0].choices) == + id(field.fields[0].choices)) + def test_multivalue_optional_subfields(self): class PhoneField(MultiValueField): def __init__(self, *args, **kwargs): |
