summaryrefslogtreecommitdiff
path: root/tests/model_forms
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-09-30 14:49:50 -0400
committerGitHub <noreply@github.com>2016-09-30 14:49:50 -0400
commit87c5e7efebd040aef0f0479ccf86877155bb5cea (patch)
tree7306b48f0da0844ca0f0f2e4347d9453eb11012e /tests/model_forms
parent1d25eb9688f1a245737490dccf8ba54b6c907052 (diff)
Refs #27186 -- Fixed model form default fallback for CheckboxSelectMultiple.
Diffstat (limited to 'tests/model_forms')
-rw-r--r--tests/model_forms/tests.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py
index de7c36271f..53e70c6ae9 100644
--- a/tests/model_forms/tests.py
+++ b/tests/model_forms/tests.py
@@ -601,6 +601,22 @@ class ModelFormBaseTest(TestCase):
self.assertIsInstance(mf1.fields['active'].widget, forms.CheckboxInput)
self.assertIs(m1._meta.get_field('active').get_default(), True)
+ def test_default_not_populated_on_checkboxselectmultiple(self):
+ class PubForm(forms.ModelForm):
+ mode = forms.CharField(required=False, widget=forms.CheckboxSelectMultiple)
+
+ class Meta:
+ model = PublicationDefaults
+ fields = ('mode',)
+
+ # Empty data doesn't use the model default because an unchecked
+ # CheckboxSelectMultiple doesn't have a value in HTML form submission.
+ mf1 = PubForm({})
+ self.assertEqual(mf1.errors, {})
+ m1 = mf1.save(commit=False)
+ self.assertEqual(m1.mode, '')
+ self.assertEqual(m1._meta.get_field('mode').get_default(), 'di')
+
def test_prefixed_form_with_default_field(self):
class PubForm(forms.ModelForm):
prefix = 'form-prefix'
@@ -651,7 +667,7 @@ class ModelFormBaseTest(TestCase):
m2 = mf2.save(commit=False)
self.assertEqual(m2.file.name, 'name')
- def test_selectdatewidget(self):
+ def test_default_selectdatewidget(self):
class PubForm(forms.ModelForm):
date_published = forms.DateField(required=False, widget=forms.SelectDateWidget)