diff options
| author | Julien Phalip <jphalip@gmail.com> | 2011-11-06 00:31:06 +0000 |
|---|---|---|
| committer | Julien Phalip <jphalip@gmail.com> | 2011-11-06 00:31:06 +0000 |
| commit | b2948d81798e78e0b3bcb016bd4efa4d66bc5d8e (patch) | |
| tree | f3dc300ceb774d3ff510dd59157b1aeed6a710a8 /tests | |
| parent | af7688dbec67ca7123aab7e8ead639bb7dbbced1 (diff) | |
Fixed #17165 -- Fixed `SelectDateWidget._has_changed()` to work correctly with a localized date format.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17071 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/forms/tests/extra.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/tests/extra.py b/tests/regressiontests/forms/tests/extra.py index dec97240e0..cbec105e94 100644 --- a/tests/regressiontests/forms/tests/extra.py +++ b/tests/regressiontests/forms/tests/extra.py @@ -17,6 +17,9 @@ from .error_messages import AssertFormErrorsMixin class GetDate(Form): mydate = DateField(widget=SelectDateWidget) +class GetDateShowHiddenInitial(Form): + mydate = DateField(widget=SelectDateWidget, show_hidden_initial=True) + class FormsExtraTestCase(unittest.TestCase, AssertFormErrorsMixin): ############### # Extra stuff # @@ -697,6 +700,60 @@ class FormsExtraL10NTestCase(unittest.TestCase): w = SelectDateWidget(years=('1899',)) self.assertEqual(w.value_from_datadict({'date_year': '1899', 'date_month': '8', 'date_day': '13'}, {}, 'date'), '13-08-1899') + def test_l10n_date_changed(self): + """ + Ensure that SelectDateWidget._has_changed() works correctly with a + localized date format. + Refs #17165. + """ + # With Field.show_hidden_initial=False ----------------------- + b = GetDate({ + 'mydate_year': '2008', + 'mydate_month': '4', + 'mydate_day': '1', + }, initial={'mydate': datetime.date(2008, 4, 1)}) + self.assertFalse(b.has_changed()) + + b = GetDate({ + 'mydate_year': '2008', + 'mydate_month': '4', + 'mydate_day': '2', + }, initial={'mydate': datetime.date(2008, 4, 1)}) + self.assertTrue(b.has_changed()) + + # With Field.show_hidden_initial=True ------------------------ + b = GetDateShowHiddenInitial({ + 'mydate_year': '2008', + 'mydate_month': '4', + 'mydate_day': '1', + 'initial-mydate': HiddenInput()._format_value(datetime.date(2008, 4, 1)) + }, initial={'mydate': datetime.date(2008, 4, 1)}) + self.assertFalse(b.has_changed()) + + b = GetDateShowHiddenInitial({ + 'mydate_year': '2008', + 'mydate_month': '4', + 'mydate_day': '22', + 'initial-mydate': HiddenInput()._format_value(datetime.date(2008, 4, 1)) + }, initial={'mydate': datetime.date(2008, 4, 1)}) + self.assertTrue(b.has_changed()) + + b = GetDateShowHiddenInitial({ + 'mydate_year': '2008', + 'mydate_month': '4', + 'mydate_day': '22', + 'initial-mydate': HiddenInput()._format_value(datetime.date(2008, 4, 1)) + }, initial={'mydate': datetime.date(2008, 4, 22)}) + self.assertTrue(b.has_changed()) + + b = GetDateShowHiddenInitial({ + 'mydate_year': '2008', + 'mydate_month': '4', + 'mydate_day': '22', + 'initial-mydate': HiddenInput()._format_value(datetime.date(2008, 4, 22)) + }, initial={'mydate': datetime.date(2008, 4, 1)}) + self.assertFalse(b.has_changed()) + def test_l10n_invalid_date_in(self): # Invalid dates shouldn't be allowed a = GetDate({'mydate_month':'2', 'mydate_day':'31', 'mydate_year':'2010'}) |
