diff options
| author | Jon Dufresne <jon.dufresne@gmail.com> | 2017-04-21 09:14:40 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-04-21 12:14:40 -0400 |
| commit | 581879a510e58841e5780a5d1fdb4995733d2036 (patch) | |
| tree | 751fb821d59af72485f69a97913872e0f2eb8706 /tests/forms_tests/widget_tests | |
| parent | 87f9a3c5b25c0dbd091d07d5fe3de95ba4cb0c0d (diff) | |
Fixed #28075 -- Prevented ChoiceWidget from localizing option values.
Diffstat (limited to 'tests/forms_tests/widget_tests')
| -rw-r--r-- | tests/forms_tests/widget_tests/test_checkboxselectmultiple.py | 31 | ||||
| -rw-r--r-- | tests/forms_tests/widget_tests/test_radioselect.py | 31 | ||||
| -rw-r--r-- | tests/forms_tests/widget_tests/test_select.py | 30 |
3 files changed, 92 insertions, 0 deletions
diff --git a/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py b/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py index 6ec5c78803..239f80da47 100644 --- a/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py +++ b/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py @@ -1,5 +1,8 @@ +import datetime + from django import forms from django.forms import CheckboxSelectMultiple +from django.test import override_settings from .base import WidgetTest @@ -149,6 +152,34 @@ class CheckboxSelectMultipleTest(WidgetTest): """ self.check_html(widget, 'letters', ['a', 'c'], html=html) + @override_settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True) + def test_doesnt_localize_input_value(self): + choices = [ + (1, 'One'), + (1000, 'One thousand'), + (1000000, 'One million'), + ] + html = """ + <ul> + <li><label><input type="checkbox" name="numbers" value="1" /> One</label></li> + <li><label><input type="checkbox" name="numbers" value="1000" /> One thousand</label></li> + <li><label><input type="checkbox" name="numbers" value="1000000" /> One million</label></li> + </ul> + """ + self.check_html(self.widget(choices=choices), 'numbers', None, html=html) + + choices = [ + (datetime.time(0, 0), 'midnight'), + (datetime.time(12, 0), 'noon'), + ] + html = """ + <ul> + <li><label><input type="checkbox" name="times" value="00:00:00" /> midnight</label></li> + <li><label><input type="checkbox" name="times" value="12:00:00" /> noon</label></li> + </ul> + """ + self.check_html(self.widget(choices=choices), 'times', None, html=html) + def test_use_required_attribute(self): widget = self.widget(choices=self.beatles) # Always False because browser validation would require all checkboxes diff --git a/tests/forms_tests/widget_tests/test_radioselect.py b/tests/forms_tests/widget_tests/test_radioselect.py index 8ef3a17da5..05f980eb36 100644 --- a/tests/forms_tests/widget_tests/test_radioselect.py +++ b/tests/forms_tests/widget_tests/test_radioselect.py @@ -1,4 +1,7 @@ +import datetime + from django.forms import RadioSelect +from django.test import override_settings from .base import WidgetTest @@ -99,3 +102,31 @@ class RadioSelectTest(WidgetTest): </ul> """ self.check_html(self.widget(choices=self.beatles), 'beatle', 'J', attrs={'class': 'bar'}, html=html) + + @override_settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True) + def test_doesnt_localize_input_value(self): + choices = [ + (1, 'One'), + (1000, 'One thousand'), + (1000000, 'One million'), + ] + html = """ + <ul> + <li><label><input type="radio" name="number" value="1" /> One</label></li> + <li><label><input type="radio" name="number" value="1000" /> One thousand</label></li> + <li><label><input type="radio" name="number" value="1000000" /> One million</label></li> + </ul> + """ + self.check_html(self.widget(choices=choices), 'number', None, html=html) + + choices = [ + (datetime.time(0, 0), 'midnight'), + (datetime.time(12, 0), 'noon'), + ] + html = """ + <ul> + <li><label><input type="radio" name="time" value="00:00:00" /> midnight</label></li> + <li><label><input type="radio" name="time" value="12:00:00" /> noon</label></li> + </ul> + """ + self.check_html(self.widget(choices=choices), 'time', None, html=html) diff --git a/tests/forms_tests/widget_tests/test_select.py b/tests/forms_tests/widget_tests/test_select.py index 23d6126810..047d007564 100644 --- a/tests/forms_tests/widget_tests/test_select.py +++ b/tests/forms_tests/widget_tests/test_select.py @@ -1,6 +1,8 @@ import copy +import datetime from django.forms import Select +from django.test import override_settings from django.utils.safestring import mark_safe from .base import WidgetTest @@ -218,6 +220,34 @@ class SelectTest(WidgetTest): </select>""" )) + @override_settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True) + def test_doesnt_localize_option_value(self): + choices = [ + (1, 'One'), + (1000, 'One thousand'), + (1000000, 'One million'), + ] + html = """ + <select name="number"> + <option value="1">One</option> + <option value="1000">One thousand</option> + <option value="1000000">One million</option> + </select> + """ + self.check_html(self.widget(choices=choices), 'number', None, html=html) + + choices = [ + (datetime.time(0, 0), 'midnight'), + (datetime.time(12, 0), 'noon'), + ] + html = """ + <select name="time"> + <option value="00:00:00">midnight</option> + <option value="12:00:00">noon</option> + </select> + """ + self.check_html(self.widget(choices=choices), 'time', None, html=html) + def test_options(self): options = list(self.widget(choices=self.beatles).options( 'name', ['J'], attrs={'class': 'super'}, |
