]> granicus.if.org Git - python/commitdiff
[ 1197218 ] test_locale fix on modern linux
authorAnthony Baxter <anthonybaxter@gmail.com>
Fri, 3 Jun 2005 15:04:15 +0000 (15:04 +0000)
committerAnthony Baxter <anthonybaxter@gmail.com>
Fri, 3 Jun 2005 15:04:15 +0000 (15:04 +0000)
On more modern linuxes (and probably others) straight 'en_US' isn't a
valid locale. Make the code try a couple of alternates.

backport candidate

Lib/test/test_locale.py

index d8f79250525e97d7e325ca113216d7160692a5a9..2a33aafb88072a7a5e0086067598a03d6b9b8bf5 100644 (file)
@@ -7,16 +7,18 @@ if sys.platform == 'darwin':
 oldlocale = locale.setlocale(locale.LC_NUMERIC)
 
 if sys.platform.startswith("win"):
-    tloc = "en"
-elif sys.platform.startswith("freebsd"):
-    tloc = "en_US.US-ASCII"
+    tlocs = ("en",)
 else:
-    tloc = "en_US"
+    tlocs = ("en_US.UTF-8", "en_US.US-ASCII", "en_US")
 
-try:
-    locale.setlocale(locale.LC_NUMERIC, tloc)
-except locale.Error:
-    raise ImportError, "test locale %s not supported" % tloc
+for tloc in tlocs:
+    try:
+        locale.setlocale(locale.LC_NUMERIC, tloc)
+        break
+    except locale.Error:
+        continue
+else:
+    raise ImportError, "test locale not supported (tried %s)"%(', '.join(tlocs))
 
 def testformat(formatstr, value, grouping = 0, output=None):
     if verbose: