From 5beb5f73722f7807f2be4e95b2fbe4a0e5dcd232 Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Sun, 7 Mar 2010 03:33:07 +0000 Subject: Fixed #12858. DateTime related widgets now handle custom formats properly in _has_changed. Thanks for the initial patch, camillo. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12698 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/forms/widgets.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tests/regressiontests/forms/widgets.py') diff --git a/tests/regressiontests/forms/widgets.py b/tests/regressiontests/forms/widgets.py index 4acaf831aa..d862f40b01 100644 --- a/tests/regressiontests/forms/widgets.py +++ b/tests/regressiontests/forms/widgets.py @@ -3,6 +3,7 @@ tests = r""" >>> from django.forms import * >>> from django.forms.widgets import RadioFieldRenderer >>> from django.utils.safestring import mark_safe +>>> from django.utils import formats >>> import datetime >>> import time >>> import re @@ -1149,6 +1150,14 @@ u'' >>> w._has_changed(d, '17/09/2007 12:51') False +Make sure a custom format works with _has_changed. The hidden input will use +format.localize_input to display the initial value. +>>> data = datetime.datetime(2010, 3, 6, 12, 0, 0) +>>> custom_format = '%d.%m.%Y %H:%M' +>>> w = DateTimeInput(format=custom_format) +>>> w._has_changed(formats.localize_input(data), data.strftime(custom_format)) +False + # DateInput ################################################################### @@ -1182,6 +1191,15 @@ u'' >>> w._has_changed(d, '17/09/2007') False +Make sure a custom format works with _has_changed. The hidden input will use +format.localize_input to display the initial value. +>>> data = datetime.date(2010, 3, 6) +>>> custom_format = '%d.%m.%Y' +>>> w = DateInput(format=custom_format) +>>> w._has_changed(formats.localize_input(data), data.strftime(custom_format)) +False + + # TimeInput ################################################################### >>> w = TimeInput() @@ -1217,6 +1235,15 @@ u'' >>> w._has_changed(t, '12:51') False +Make sure a custom format works with _has_changed. The hidden input will use +format.localize_input to display the initial value. +>>> data = datetime.time(13, 0) +>>> custom_format = '%I:%M %p' +>>> w = TimeInput(format=custom_format) +>>> w._has_changed(formats.localize_input(data), data.strftime(custom_format)) +False + + # SplitHiddenDateTimeWidget ################################################### >>> from django.forms.widgets import SplitHiddenDateTimeWidget -- cgit v1.3