diff options
| author | Tim Graham <timograham@gmail.com> | 2016-09-06 17:41:54 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-09-22 12:20:58 -0400 |
| commit | 3507d4e773aa9ff2336e7230ba231c4ba6eb568f (patch) | |
| tree | 09467b4724131e91b0afe1d2f133e5e56ba068cf /tests/model_forms | |
| parent | 92323d54fd6df077dc523c423c7bb2dd8dbde621 (diff) | |
Fixed #27186 -- Fixed model form default fallback for MultiWidget, FileInput, SplitDateTimeWidget, SelectDateWidget, and SplitArrayWidget.
Thanks Matt Westcott for the review.
Diffstat (limited to 'tests/model_forms')
| -rw-r--r-- | tests/model_forms/models.py | 2 | ||||
| -rw-r--r-- | tests/model_forms/tests.py | 52 |
2 files changed, 54 insertions, 0 deletions
diff --git a/tests/model_forms/models.py b/tests/model_forms/models.py index 1b64477a20..f873cfea97 100644 --- a/tests/model_forms/models.py +++ b/tests/model_forms/models.py @@ -120,9 +120,11 @@ class PublicationDefaults(models.Model): CATEGORY_CHOICES = ((1, 'Games'), (2, 'Comics'), (3, 'Novel')) title = models.CharField(max_length=30) date_published = models.DateField(default=datetime.date.today) + datetime_published = models.DateTimeField(default=datetime.datetime(2000, 1, 1)) mode = models.CharField(max_length=2, choices=MODE_CHOICES, default=default_mode) category = models.IntegerField(choices=CATEGORY_CHOICES, default=default_category) active = models.BooleanField(default=True) + file = models.FileField(default='default.txt') class Author(models.Model): diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index 3a73cc8d55..de7c36271f 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -617,6 +617,58 @@ class ModelFormBaseTest(TestCase): m1 = mf1.save(commit=False) self.assertEqual(m1.mode, mode) + def test_default_splitdatetime_field(self): + class PubForm(forms.ModelForm): + datetime_published = forms.SplitDateTimeField(required=False) + + class Meta: + model = PublicationDefaults + fields = ('datetime_published',) + + mf1 = PubForm({}) + self.assertEqual(mf1.errors, {}) + m1 = mf1.save(commit=False) + self.assertEqual(m1.datetime_published, datetime.datetime(2000, 1, 1)) + + mf2 = PubForm({'datetime_published_0': '2010-01-01', 'datetime_published_1': '0:00:00'}) + self.assertEqual(mf2.errors, {}) + m2 = mf2.save(commit=False) + self.assertEqual(m2.datetime_published, datetime.datetime(2010, 1, 1)) + + def test_default_filefield(self): + class PubForm(forms.ModelForm): + class Meta: + model = PublicationDefaults + fields = ('file',) + + mf1 = PubForm({}) + self.assertEqual(mf1.errors, {}) + m1 = mf1.save(commit=False) + self.assertEqual(m1.file.name, 'default.txt') + + mf2 = PubForm({}, {'file': SimpleUploadedFile('name', b'foo')}) + self.assertEqual(mf2.errors, {}) + m2 = mf2.save(commit=False) + self.assertEqual(m2.file.name, 'name') + + def test_selectdatewidget(self): + class PubForm(forms.ModelForm): + date_published = forms.DateField(required=False, widget=forms.SelectDateWidget) + + class Meta: + model = PublicationDefaults + fields = ('date_published',) + + mf1 = PubForm({}) + self.assertEqual(mf1.errors, {}) + m1 = mf1.save(commit=False) + self.assertEqual(m1.date_published, datetime.date.today()) + + mf2 = PubForm({'date_published_year': '2010', 'date_published_month': '1', 'date_published_day': '1'}) + self.assertEqual(mf2.errors, {}) + m2 = mf2.save(commit=False) + self.assertEqual(m2.date_published, datetime.date(2010, 1, 1)) + class FieldOverridesByFormMetaForm(forms.ModelForm): class Meta: |
