[New-bugs-announce] [issue24299] 2.7.10 test__locale.py change breaks on Solaris

John Beck report at bugs.python.org
Wed May 27 17:43:31 CEST 2015

New submission from John Beck:

The upgrade from 2.7.9 to 2.7.10 resulted in test__locale failing.
This test had previously succeeded.  The difference is that the
thousands-separator for the fr_FR locale in known_numerics was
changed from '' (i.e., unknown) to ' ' (i.e. space).  But on Solaris,
'\xa0' (i.e., non-break space in ISO8859-1) is what the fr_FR locale
returns for LC_NUMERIC's thousands-separator.  I inquired with our
Globalization experts, who replied:

The short answer is that CLDR defines the group separator as no-break 
space (U+00A0): http://st.unicode.org/cldr-apps/v#/fr/Symbols/
so the solaris locale fr_FR (=fr_FR.ISO8859-1) is correct.

The long answer is that the situation is confusing, the fr_FR.ISO8859-1
defines the thousands_sep as no-break space, but fr_FR.UTF-8 defines
the thousands_sep as space (U+0020). There is no technical limit, but
combination of POSIX [1] and C language [2] limits the thousands_sep
to single byte character. The no-break space is single byte character
in ISO8859-1, but multibyte in UTF-8.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html#tag_07_03_04

[2] http://en.cppreference.com/w/c/locale/lconv
The attached patch fixes the test on Solaris.  It is not clear if this
is the Right Answer for all platforms, but I offer the attached patch
in case it helps anyone else.

components: Library (Lib)
files: 25-test__locale.patch
keywords: patch
messages: 244181
nosy: jbeck
priority: normal
severity: normal
status: open
title: 2.7.10 test__locale.py change breaks on Solaris
type: behavior
versions: Python 2.7
Added file: http://bugs.python.org/file39520/25-test__locale.patch

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list