diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2012-02-23 23:37:51 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2012-02-23 23:37:51 (GMT) |
commit | 41a863cb81608c779d60b49e7be8a115816734fc (patch) | |
tree | b59ae94894190d8863ffd2081122db4fe819e003 /Lib/test/test_format.py | |
parent | dcb30cf959902fdc3da027c13a99e091d116c273 (diff) | |
download | cpython-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/test/test_format.py')
-rw-r--r-- | Lib/test/test_format.py | 15 |
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) |