summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-02-15 16:37:52 +0100
committerClaude Paroz <claude@2xlibre.net>2013-02-15 16:37:52 +0100
commitb19d83fc12ebbabbaa9d72286f2e4bfa071ff784 (patch)
treefe3375f85c1641272db78d024d6076ba305a4feb /tests/regressiontests
parenta8d1421dd9d0ada64b9d8a3e96ed0b431c66ac97 (diff)
Improved input sanitizing with thousand separators
For languages with non-breaking space as thousand separator, standard space input should also be allowed, as few people know how to enter non-breaking space on keyboards. Refs #17217. Thanks Alexey Boriskin for the report and initial patch.
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/i18n/tests.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py
index ba7415c053..45d49d5766 100644
--- a/tests/regressiontests/i18n/tests.py
+++ b/tests/regressiontests/i18n/tests.py
@@ -15,7 +15,7 @@ from django.test.utils import override_settings
from django.utils import translation
from django.utils.formats import (get_format, date_format, time_format,
localize, localize_input, iter_format_modules, get_format_modules,
- number_format)
+ number_format, sanitize_separators)
from django.utils.importlib import import_module
from django.utils.numberformat import format as nformat
from django.utils._os import upath
@@ -669,6 +669,24 @@ class FormattingTests(TestCase):
# Checking for the localized "products_delivered" field
self.assertInHTML('<input type="text" name="products_delivered" value="12.000" id="id_products_delivered" />', form6.as_ul())
+ def test_sanitize_separators(self):
+ """
+ Tests django.utils.formats.sanitize_separators.
+ """
+ # Non-strings are untouched
+ self.assertEqual(sanitize_separators(123), 123)
+
+ with translation.override('ru', deactivate=True):
+ # Russian locale has non-breaking space (\xa0) as thousand separator
+ # Check that usual space is accepted too when sanitizing inputs
+ with self.settings(USE_THOUSAND_SEPARATOR=True):
+ self.assertEqual(sanitize_separators('1\xa0234\xa0567'), '1234567')
+ self.assertEqual(sanitize_separators('77\xa0777,777'), '77777.777')
+ self.assertEqual(sanitize_separators('12 345'), '12345')
+ self.assertEqual(sanitize_separators('77 777,777'), '77777.777')
+ with self.settings(USE_THOUSAND_SEPARATOR=True, USE_L10N=False):
+ self.assertEqual(sanitize_separators('12\xa0345'), '12\xa0345')
+
def test_iter_format_modules(self):
"""
Tests the iter_format_modules function.