summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJulien Phalip <jphalip@gmail.com>2011-11-06 00:31:06 +0000
committerJulien Phalip <jphalip@gmail.com>2011-11-06 00:31:06 +0000
commitb2948d81798e78e0b3bcb016bd4efa4d66bc5d8e (patch)
treef3dc300ceb774d3ff510dd59157b1aeed6a710a8 /tests
parentaf7688dbec67ca7123aab7e8ead639bb7dbbced1 (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.py57
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'})