]> granicus.if.org Git - python/commitdiff
Reset old locale after running tests. Not doing so broke
authorJohannes Gijsbers <jlg@dds.nl>
Sat, 14 Aug 2004 10:56:54 +0000 (10:56 +0000)
committerJohannes Gijsbers <jlg@dds.nl>
Sat, 14 Aug 2004 10:56:54 +0000 (10:56 +0000)
test_format/test_unicode in some circumstances (patch #1007539/bug #992078).

Lib/test/test__locale.py

index be1d2bae60392312ad037854024f6b28ddf34265..c113c6384ee79a891d3d643c23e4c3f66fe61f43 100644 (file)
@@ -13,22 +13,26 @@ candidate_locales = ['es_UY', 'fr_FR', 'fi_FI', 'es_CO', 'pt_PT', 'it_IT',
     'eu_ES', 'vi_VN', 'af_ZA', 'nb_NO', 'en_DK', 'tg_TJ',
     'es_ES.ISO8859-1', 'fr_FR.ISO8859-15', 'ru_RU.KOI8-R', 'ko_KR.eucKR']
 
-saw_locale = 0
-for loc in candidate_locales:
-    try:
-        setlocale(LC_NUMERIC, loc)
-    except Error:
-        continue
-    if verbose:
-        print "locale %r" % loc
-    saw_locale = 1
-    nl_radixchar = nl_langinfo(RADIXCHAR)
-    li_radixchar = localeconv()['decimal_point']
-    if nl_radixchar != li_radixchar:
-        print "%r != %r" % (nl_radixchar, li_radixchar)
-    nl_radixchar = nl_langinfo(THOUSEP)
-    li_radixchar = localeconv()['thousands_sep']
-    if nl_radixchar != li_radixchar:
-        print "%r != %r" % (nl_radixchar, li_radixchar)
-if not saw_locale:
-    raise ImportError, "None of the listed locales found"
+oldlocale = setlocale(LC_NUMERIC)
+try:
+    saw_locale = 0
+    for loc in candidate_locales:
+        try:
+            setlocale(LC_NUMERIC, loc)
+        except Error:
+            continue
+        if verbose:
+            print "locale %r" % loc
+        saw_locale = 1
+        nl_radixchar = nl_langinfo(RADIXCHAR)
+        li_radixchar = localeconv()['decimal_point']
+        if nl_radixchar != li_radixchar:
+            print "%r != %r" % (nl_radixchar, li_radixchar)
+        nl_radixchar = nl_langinfo(THOUSEP)
+        li_radixchar = localeconv()['thousands_sep']
+        if nl_radixchar != li_radixchar:
+            print "%r != %r" % (nl_radixchar, li_radixchar)
+    if not saw_locale:
+            raise ImportError, "None of the listed locales found"
+finally:
+    setlocale(LC_NUMERIC, oldlocale)