From da800be6ddfdd4c88b48011ef264ea1ec6365725 Mon Sep 17 00:00:00 2001 From: Loic Bistuer Date: Wed, 28 Aug 2013 13:22:47 +0700 Subject: Fixed #20986 -- Enabled SelectDateWidget to use custom months Reviewed by Trac alias MarkusH. --- tests/forms_tests/tests/test_extra.py | 70 +++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 3 deletions(-) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/tests/test_extra.py b/tests/forms_tests/tests/test_extra.py index 3bc22243fb..b86245ab73 100644 --- a/tests/forms_tests/tests/test_extra.py +++ b/tests/forms_tests/tests/test_extra.py @@ -10,6 +10,7 @@ from django.test import TestCase from django.test.utils import override_settings from django.utils import six from django.utils import translation +from django.utils.dates import MONTHS_AP from django.utils.encoding import force_text, smart_text, python_2_unicode_compatible from .test_error_messages import AssertFormErrorsMixin @@ -32,6 +33,8 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): # The forms library comes with some extra, higher-level Field and Widget def test_selectdate(self): w = SelectDateWidget(years=('2007','2008','2009','2010','2011','2012','2013','2014','2015','2016')) + + # Rendering the default state. self.assertHTMLEqual(w.render('mydate', ''), """""") + + # Rendering the None or '' values should yield the same output. self.assertHTMLEqual(w.render('mydate', None), w.render('mydate', '')) + # Rendering a string value. self.assertHTMLEqual(w.render('mydate', '2010-04-15'), """""") - # Accepts a datetime or a string: + # Rendering a datetime value. self.assertHTMLEqual(w.render('mydate', datetime.date(2010, 4, 15)), w.render('mydate', '2010-04-15')) - # Invalid dates still render the failed date: + # Invalid dates should still render the failed date. self.assertHTMLEqual(w.render('mydate', '2010-02-31'), """""") - # Using a SelectDateWidget in a form: + # Rendering with a custom months dict. + w = SelectDateWidget(months=MONTHS_AP, years=('2013',)) + self.assertHTMLEqual(w.render('mydate', ''), """ + + + +""") + + # Using a SelectDateWidget in a form. w = SelectDateWidget(years=('2007','2008','2009','2010','2011','2012','2013','2014','2015','2016'), required=False) self.assertHTMLEqual(w.render('mydate', ''), """