summaryrefslogtreecommitdiff
path: root/tests/forms_tests/widget_tests
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2019-05-05 01:26:37 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-05-08 12:46:30 +0200
commitf038214d917c982613f5a15db8dfe325b1f7479b (patch)
tree18568b95d012b8466d1a498f594d2dcfd65bb229 /tests/forms_tests/widget_tests
parentef9f2eb69c9396683cefa742bc7d0a0792090e8d (diff)
Fixed #29056 -- Fixed HTML5 validation of required SelectDateWidget.
placeholder is required for "select" with "required" attribute.
Diffstat (limited to 'tests/forms_tests/widget_tests')
-rw-r--r--tests/forms_tests/widget_tests/test_selectdatewidget.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/forms_tests/widget_tests/test_selectdatewidget.py b/tests/forms_tests/widget_tests/test_selectdatewidget.py
index f9921af5f9..00d3d8a7f2 100644
--- a/tests/forms_tests/widget_tests/test_selectdatewidget.py
+++ b/tests/forms_tests/widget_tests/test_selectdatewidget.py
@@ -314,6 +314,46 @@ class SelectDateWidgetTest(WidgetTest):
self.assertFalse(GetNotRequiredDate().fields['mydate'].widget.is_required)
self.assertTrue(GetRequiredDate().fields['mydate'].widget.is_required)
+ def test_selectdate_required_placeholder(self):
+ for required in (True, False):
+ field = DateField(widget=SelectDateWidget(years=('2018', '2019')), required=required)
+ self.check_html(field.widget, 'my_date', '', html=(
+ """
+ <select name="my_date_month" id="id_my_date_month" %(m_placeholder)s>
+ %(empty)s
+ <option value="1">January</option>
+ <option value="2">February</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">August</option>
+ <option value="9">September</option>
+ <option value="10">October</option>
+ <option value="11">November</option>
+ <option value="12">December</option>
+ </select>
+ <select name="my_date_day" id="id_my_date_day" %(d_placeholder)s>
+ %(empty)s
+ %(days_options)s
+ </select>
+ <select name="my_date_year" id="id_my_date_year" %(y_placeholder)s>
+ %(empty)s
+ <option value="2018">2018</option>
+ <option value="2019">2019</option>
+ </select>
+ """ % {
+ 'days_options': '\n'.join(
+ '<option value="%s">%s</option>' % (i, i) for i in range(1, 32)
+ ),
+ 'm_placeholder': 'placeholder="Month"' if required else '',
+ 'd_placeholder': 'placeholder="Day"' if required else '',
+ 'y_placeholder': 'placeholder="Year"' if required else '',
+ 'empty': '' if required else '<option selected value="">---</option>',
+ }
+ ))
+
def test_selectdate_empty_label(self):
w = SelectDateWidget(years=('2014',), empty_label='empty_label')