diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-08 12:09:55 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-08 12:15:38 +0100 |
| commit | 6a682b38e75d4c975b4c4493565a59f1bc14397c (patch) | |
| tree | 0bd9cda550bea26238656d9f120d769e8b41bb9e /tests/forms_tests/widget_tests/test_selectdatewidget.py | |
| parent | e73ce08888e6f34d3f050377cfd2fbb733be94a9 (diff) | |
[4.0.x] Refs #33476 -- Reformatted code with Black.
Backport of 9c19aff7c7561e3a82978a272ecdaad40dda5c00 from main.
Diffstat (limited to 'tests/forms_tests/widget_tests/test_selectdatewidget.py')
| -rw-r--r-- | tests/forms_tests/widget_tests/test_selectdatewidget.py | 240 |
1 files changed, 165 insertions, 75 deletions
diff --git a/tests/forms_tests/widget_tests/test_selectdatewidget.py b/tests/forms_tests/widget_tests/test_selectdatewidget.py index 6a922e4e71..de0c35cd5b 100644 --- a/tests/forms_tests/widget_tests/test_selectdatewidget.py +++ b/tests/forms_tests/widget_tests/test_selectdatewidget.py @@ -12,12 +12,27 @@ from .base import WidgetTest class SelectDateWidgetTest(WidgetTest): maxDiff = None widget = SelectDateWidget( - years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016'), + years=( + "2007", + "2008", + "2009", + "2010", + "2011", + "2012", + "2013", + "2014", + "2015", + "2016", + ), ) def test_render_empty(self): - self.check_html(self.widget, 'mydate', '', html=( - """ + self.check_html( + self.widget, + "mydate", + "", + html=( + """ <select name="mydate_month" id="id_mydate_month"> <option selected value="">---</option> <option value="1">January</option> @@ -83,20 +98,25 @@ class SelectDateWidgetTest(WidgetTest): <option value="2016">2016</option> </select> """ - )) + ), + ) def test_render_none(self): """ Rendering the None or '' values should yield the same output. """ self.assertHTMLEqual( - self.widget.render('mydate', None), - self.widget.render('mydate', ''), + self.widget.render("mydate", None), + self.widget.render("mydate", ""), ) def test_render_string(self): - self.check_html(self.widget, 'mydate', '2010-04-15', html=( - """ + self.check_html( + self.widget, + "mydate", + "2010-04-15", + html=( + """ <select name="mydate_month" id="id_mydate_month"> <option value="">---</option> <option value="1">January</option> @@ -162,20 +182,25 @@ class SelectDateWidgetTest(WidgetTest): <option value="2016">2016</option> </select> """ - )) + ), + ) def test_render_datetime(self): self.assertHTMLEqual( - self.widget.render('mydate', date(2010, 4, 15)), - self.widget.render('mydate', '2010-04-15'), + self.widget.render("mydate", date(2010, 4, 15)), + self.widget.render("mydate", "2010-04-15"), ) def test_render_invalid_date(self): """ Invalid dates should still render the failed date. """ - self.check_html(self.widget, 'mydate', '2010-02-31', html=( - """ + self.check_html( + self.widget, + "mydate", + "2010-02-31", + html=( + """ <select name="mydate_month" id="id_mydate_month"> <option value="">---</option> <option value="1">January</option> @@ -241,12 +266,17 @@ class SelectDateWidgetTest(WidgetTest): <option value="2016">2016</option> </select> """ - )) + ), + ) def test_custom_months(self): - widget = SelectDateWidget(months=MONTHS_AP, years=('2013',)) - self.check_html(widget, 'mydate', '', html=( - """ + widget = SelectDateWidget(months=MONTHS_AP, years=("2013",)) + self.check_html( + widget, + "mydate", + "", + html=( + """ <select name="mydate_month" id="id_mydate_month"> <option selected value="">---</option> <option value="1">Jan.</option> @@ -303,7 +333,8 @@ class SelectDateWidgetTest(WidgetTest): <option value="2013">2013</option> </select> """ - )) + ), + ) def test_selectdate_required(self): class GetNotRequiredDate(Form): @@ -312,20 +343,26 @@ class SelectDateWidgetTest(WidgetTest): class GetRequiredDate(Form): mydate = DateField(widget=SelectDateWidget, required=True) - self.assertFalse(GetNotRequiredDate().fields['mydate'].widget.is_required) - self.assertTrue(GetRequiredDate().fields['mydate'].widget.is_required) + self.assertFalse(GetNotRequiredDate().fields["mydate"].widget.is_required) + self.assertTrue(GetRequiredDate().fields["mydate"].widget.is_required) def test_selectdate_empty_label(self): - w = SelectDateWidget(years=('2014',), empty_label='empty_label') + w = SelectDateWidget(years=("2014",), empty_label="empty_label") # Rendering the default state with empty_label set as string. - self.assertInHTML('<option selected value="">empty_label</option>', w.render('mydate', ''), count=3) + self.assertInHTML( + '<option selected value="">empty_label</option>', + w.render("mydate", ""), + count=3, + ) - w = SelectDateWidget(years=('2014',), empty_label=('empty_year', 'empty_month', 'empty_day')) + w = SelectDateWidget( + years=("2014",), empty_label=("empty_year", "empty_month", "empty_day") + ) # Rendering the default state with empty_label tuple. self.assertHTMLEqual( - w.render('mydate', ''), + w.render("mydate", ""), """ <select name="mydate_month" id="id_mydate_month"> <option selected value="">empty_month</option> @@ -385,21 +422,36 @@ class SelectDateWidgetTest(WidgetTest): """, ) - with self.assertRaisesMessage(ValueError, 'empty_label list/tuple must have 3 elements.'): - SelectDateWidget(years=('2014',), empty_label=('not enough', 'values')) + with self.assertRaisesMessage( + ValueError, "empty_label list/tuple must have 3 elements." + ): + SelectDateWidget(years=("2014",), empty_label=("not enough", "values")) - @translation.override('nl') + @translation.override("nl") def test_l10n(self): w = SelectDateWidget( - years=('2007', '2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015', '2016') + years=( + "2007", + "2008", + "2009", + "2010", + "2011", + "2012", + "2013", + "2014", + "2015", + "2016", + ) ) self.assertEqual( - w.value_from_datadict({'date_year': '2010', 'date_month': '8', 'date_day': '13'}, {}, 'date'), - '13-08-2010', + w.value_from_datadict( + {"date_year": "2010", "date_month": "8", "date_day": "13"}, {}, "date" + ), + "13-08-2010", ) self.assertHTMLEqual( - w.render('date', '13-08-2010'), + w.render("date", "13-08-2010"), """ <select name="date_day" id="id_date_day"> <option value="">---</option> @@ -469,20 +521,24 @@ class SelectDateWidgetTest(WidgetTest): ) # Even with an invalid date, the widget should reflect the entered value (#17401). - self.assertEqual(w.render('mydate', '2010-02-30').count('selected'), 3) + self.assertEqual(w.render("mydate", "2010-02-30").count("selected"), 3) # Years before 1900 should work. - w = SelectDateWidget(years=('1899',)) + w = SelectDateWidget(years=("1899",)) self.assertEqual( - w.value_from_datadict({'date_year': '1899', 'date_month': '8', 'date_day': '13'}, {}, 'date'), - '13-08-1899', + w.value_from_datadict( + {"date_year": "1899", "date_month": "8", "date_day": "13"}, {}, "date" + ), + "13-08-1899", ) # And years before 1000 (demonstrating the need for # sanitize_strftime_format). - w = SelectDateWidget(years=('0001',)) + w = SelectDateWidget(years=("0001",)) self.assertEqual( - w.value_from_datadict({'date_year': '0001', 'date_month': '8', 'date_day': '13'}, {}, 'date'), - '13-08-0001', + w.value_from_datadict( + {"date_year": "0001", "date_month": "8", "date_day": "13"}, {}, "date" + ), + "13-08-0001", ) # RemovedInDjango50Warning: When the deprecation ends, remove @@ -490,77 +546,110 @@ class SelectDateWidgetTest(WidgetTest): # format-related settings will take precedence over locale-dictated # formats. @ignore_warnings(category=RemovedInDjango50Warning) - @override_settings(USE_L10N=False, DATE_INPUT_FORMATS=['%d.%m.%Y']) + @override_settings(USE_L10N=False, DATE_INPUT_FORMATS=["%d.%m.%Y"]) def test_custom_input_format(self): - w = SelectDateWidget(years=('0001', '1899', '2009', '2010')) + w = SelectDateWidget(years=("0001", "1899", "2009", "2010")) for values, expected_value in ( - (('0001', '8', '13'), '13.08.0001'), - (('1899', '7', '11'), '11.07.1899'), - (('2009', '3', '7'), '07.03.2009'), + (("0001", "8", "13"), "13.08.0001"), + (("1899", "7", "11"), "11.07.1899"), + (("2009", "3", "7"), "07.03.2009"), ): with self.subTest(values=values): data = { - 'field_%s' % field: value - for field, value in zip(('year', 'month', 'day'), values) + "field_%s" % field: value + for field, value in zip(("year", "month", "day"), values) } - self.assertEqual(w.value_from_datadict(data, {}, 'field'), expected_value) + self.assertEqual( + w.value_from_datadict(data, {}, "field"), expected_value + ) expected_dict = { field: int(value) - for field, value in zip(('year', 'month', 'day'), values) + for field, value in zip(("year", "month", "day"), values) } self.assertEqual(w.format_value(expected_value), expected_dict) def test_format_value(self): valid_formats = [ - '2000-1-1', '2000-10-15', '2000-01-01', - '2000-01-0', '2000-0-01', '2000-0-0', - '0-01-01', '0-01-0', '0-0-01', '0-0-0', + "2000-1-1", + "2000-10-15", + "2000-01-01", + "2000-01-0", + "2000-0-01", + "2000-0-0", + "0-01-01", + "0-01-0", + "0-0-01", + "0-0-0", ] for value in valid_formats: - year, month, day = (int(x) or '' for x in value.split('-')) + year, month, day = (int(x) or "" for x in value.split("-")) with self.subTest(value=value): - self.assertEqual(self.widget.format_value(value), {'day': day, 'month': month, 'year': year}) + self.assertEqual( + self.widget.format_value(value), + {"day": day, "month": month, "year": year}, + ) invalid_formats = [ - '2000-01-001', '2000-001-01', '2-01-01', '20-01-01', '200-01-01', - '20000-01-01', + "2000-01-001", + "2000-001-01", + "2-01-01", + "20-01-01", + "200-01-01", + "20000-01-01", ] for value in invalid_formats: with self.subTest(value=value): - self.assertEqual(self.widget.format_value(value), {'day': None, 'month': None, 'year': None}) + self.assertEqual( + self.widget.format_value(value), + {"day": None, "month": None, "year": None}, + ) def test_value_from_datadict(self): tests = [ - (('2000', '12', '1'), '2000-12-01'), - (('', '12', '1'), '0-12-1'), - (('2000', '', '1'), '2000-0-1'), - (('2000', '12', ''), '2000-12-0'), - (('', '', '', ''), None), - ((None, '12', '1'), None), - (('2000', None, '1'), None), - (('2000', '12', None), None), + (("2000", "12", "1"), "2000-12-01"), + (("", "12", "1"), "0-12-1"), + (("2000", "", "1"), "2000-0-1"), + (("2000", "12", ""), "2000-12-0"), + (("", "", "", ""), None), + ((None, "12", "1"), None), + (("2000", None, "1"), None), + (("2000", "12", None), None), ] for values, expected in tests: with self.subTest(values=values): data = {} - for field_name, value in zip(('year', 'month', 'day'), values): + for field_name, value in zip(("year", "month", "day"), values): if value is not None: - data['field_%s' % field_name] = value - self.assertEqual(self.widget.value_from_datadict(data, {}, 'field'), expected) + data["field_%s" % field_name] = value + self.assertEqual( + self.widget.value_from_datadict(data, {}, "field"), expected + ) def test_value_omitted_from_data(self): - self.assertIs(self.widget.value_omitted_from_data({}, {}, 'field'), True) - self.assertIs(self.widget.value_omitted_from_data({'field_month': '12'}, {}, 'field'), False) - self.assertIs(self.widget.value_omitted_from_data({'field_year': '2000'}, {}, 'field'), False) - self.assertIs(self.widget.value_omitted_from_data({'field_day': '1'}, {}, 'field'), False) - data = {'field_day': '1', 'field_month': '12', 'field_year': '2000'} - self.assertIs(self.widget.value_omitted_from_data(data, {}, 'field'), False) + self.assertIs(self.widget.value_omitted_from_data({}, {}, "field"), True) + self.assertIs( + self.widget.value_omitted_from_data({"field_month": "12"}, {}, "field"), + False, + ) + self.assertIs( + self.widget.value_omitted_from_data({"field_year": "2000"}, {}, "field"), + False, + ) + self.assertIs( + self.widget.value_omitted_from_data({"field_day": "1"}, {}, "field"), False + ) + data = {"field_day": "1", "field_month": "12", "field_year": "2000"} + self.assertIs(self.widget.value_omitted_from_data(data, {}, "field"), False) @override_settings(USE_THOUSAND_SEPARATOR=True) def test_years_rendered_without_separator(self): widget = SelectDateWidget(years=(2007,)) - self.check_html(widget, 'mydate', '', html=( - """ + self.check_html( + widget, + "mydate", + "", + html=( + """ <select name="mydate_month" id="id_mydate_month"> <option selected value="">---</option> <option value="1">January</option> @@ -615,4 +704,5 @@ class SelectDateWidgetTest(WidgetTest): <option value="2007">2007</option> </select> """ - )) + ), + ) |
