diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2013-08-28 13:22:47 +0700 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2013-08-28 16:39:26 +0300 |
| commit | da800be6ddfdd4c88b48011ef264ea1ec6365725 (patch) | |
| tree | 8fff30e7cdfe09cdaf0bc2cc3ba8b933c3e0e3a6 /tests | |
| parent | b89c2a5d9eb70ca36629ef657c98e3371e9a5c4f (diff) | |
Fixed #20986 -- Enabled SelectDateWidget to use custom months
Reviewed by Trac alias MarkusH.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/forms_tests/tests/test_extra.py | 70 |
1 files changed, 67 insertions, 3 deletions
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', ''), """<select name="mydate_month" id="id_mydate_month"> <option value="0">---</option> <option value="1">January</option> @@ -96,8 +99,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): <option value="2015">2015</option> <option value="2016">2016</option> </select>""") + + # 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'), """<select name="mydate_month" id="id_mydate_month"> <option value="1">January</option> <option value="2">February</option> @@ -158,10 +164,10 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): <option value="2016">2016</option> </select>""") - # 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'), """<select name="mydate_month" id="id_mydate_month"> <option value="1">January</option> <option value="2" selected="selected">February</option> @@ -222,7 +228,65 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): <option value="2016">2016</option> </select>""") - # Using a SelectDateWidget in a form: + # Rendering with a custom months dict. + w = SelectDateWidget(months=MONTHS_AP, years=('2013',)) + self.assertHTMLEqual(w.render('mydate', ''), """<select name="mydate_month" id="id_mydate_month"> +<option value="0">---</option> +<option value="1">Jan.</option> +<option value="2">Feb.</option> +<option value="3">March</option> +<option value="4">April</option> +<option value="5">May</option> +<option value="6">June</option> +<option value="7">July</option> +<option value="8">Aug.</option> +<option value="9">Sept.</option> +<option value="10">Oct.</option> +<option value="11">Nov.</option> +<option value="12">Dec.</option> +</select> + +<select name="mydate_day" id="id_mydate_day"> +<option value="0">---</option> +<option value="1">1</option> +<option value="2">2</option> +<option value="3">3</option> +<option value="4">4</option> +<option value="5">5</option> +<option value="6">6</option> +<option value="7">7</option> +<option value="8">8</option> +<option value="9">9</option> +<option value="10">10</option> +<option value="11">11</option> +<option value="12">12</option> +<option value="13">13</option> +<option value="14">14</option> +<option value="15">15</option> +<option value="16">16</option> +<option value="17">17</option> +<option value="18">18</option> +<option value="19">19</option> +<option value="20">20</option> +<option value="21">21</option> +<option value="22">22</option> +<option value="23">23</option> +<option value="24">24</option> +<option value="25">25</option> +<option value="26">26</option> +<option value="27">27</option> +<option value="28">28</option> +<option value="29">29</option> +<option value="30">30</option> +<option value="31">31</option> +</select> + +<select name="mydate_year" id="id_mydate_year"> +<option value="0">---</option> +<option value="2013">2013</option> +</select>""") + + # 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', ''), """<select name="mydate_month" id="id_mydate_month"> <option value="0">---</option> |
