summaryrefslogtreecommitdiff
path: root/tests/forms_tests/widget_tests
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2017-04-21 09:14:40 -0700
committerTim Graham <timograham@gmail.com>2017-04-21 12:14:40 -0400
commit581879a510e58841e5780a5d1fdb4995733d2036 (patch)
tree751fb821d59af72485f69a97913872e0f2eb8706 /tests/forms_tests/widget_tests
parent87f9a3c5b25c0dbd091d07d5fe3de95ba4cb0c0d (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.py31
-rw-r--r--tests/forms_tests/widget_tests/test_radioselect.py31
-rw-r--r--tests/forms_tests/widget_tests/test_select.py30
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'},