summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2012-02-23 23:37:51 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2012-02-23 23:37:51 (GMT)
commit41a863cb81608c779d60b49e7be8a115816734fc (patch)
treeb59ae94894190d8863ffd2081122db4fe819e003 /Lib
parentdcb30cf959902fdc3da027c13a99e091d116c273 (diff)
downloadcpython-41a863cb81608c779d60b49e7be8a115816734fc.zip
cpython-41a863cb81608c779d60b49e7be8a115816734fc.tar.gz
cpython-41a863cb81608c779d60b49e7be8a115816734fc.tar.bz2
Issue #13706: Fix format(int, "n") for locale with non-ASCII thousands separator
* Decode thousands separator and decimal point using PyUnicode_DecodeLocale() (from the locale encoding), instead of decoding them implicitly from latin1 * Remove _PyUnicode_InsertThousandsGroupingLocale(), it was not used * Change _PyUnicode_InsertThousandsGrouping() API to return the maximum character if unicode is NULL * Replace MIN/MAX macros by Py_MIN/Py_MAX * stringlib/undef.h undefines STRINGLIB_IS_UNICODE * stringlib/localeutil.h only supports Unicode
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_format.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_format.py b/Lib/test/test_format.py
index 7345b30..70e748f 100644
--- a/Lib/test/test_format.py
+++ b/Lib/test/test_format.py
@@ -1,4 +1,5 @@
from test.support import verbose, TestFailed
+import locale
import sys
import test.support as support
import unittest
@@ -282,6 +283,20 @@ class FormatTest(unittest.TestCase):
self.assertEqual(format(1+2j, "\u2007^8"), "\u2007(1+2j)\u2007")
self.assertEqual(format(0j, "\u2007^4"), "\u20070j\u2007")
+ def test_locale(self):
+ try:
+ oldloc = locale.setlocale(locale.LC_ALL, '')
+ except locale.Error as err:
+ self.skipTest("Cannot set locale: {}".format(err))
+ try:
+ sep = locale.localeconv()['thousands_sep']
+ text = format(123456789, "n")
+ self.assertIn(sep, text)
+ self.assertEqual(text.replace(sep, ''), '123456789')
+ finally:
+ locale.setlocale(locale.LC_ALL, oldloc)
+
+
def test_main():
support.run_unittest(FormatTest)