summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2003-07-23 00:05:07 (GMT)
committerTim Peters <tim.peters@gmail.com>2003-07-23 00:05:07 (GMT)
commit36f7e938f287adb4a5c00bb66c5479357dfa9c26 (patch)
tree4cd94903c7316ab88e896af5a7a68973e8a2484c
parentd1deac06e78fd8fb79018f712dbd70047b5a7fa9 (diff)
downloadcpython-36f7e938f287adb4a5c00bb66c5479357dfa9c26.zip
cpython-36f7e938f287adb4a5c00bb66c5479357dfa9c26.tar.gz
cpython-36f7e938f287adb4a5c00bb66c5479357dfa9c26.tar.bz2
Fred wasn't kidding -- there really are docs for the locale module <wink>.
Obtain the original locale in the documented way. This way actually works for me. Restore the original locale at the end, instead of forcing to "C". Move the locale fiddling into the test driver instead of doing it as a side effect of merely importing the module. I don't know why the test is mucking with locale (and also added a comment saying so), but it surely has no justification for doing that as an import side-effect. Now whenever the locale-changing code executes, the locale-restoring code will also get run.
-rw-r--r--Lib/test/test_logging.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 1932293..a677edd 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -26,16 +26,9 @@ Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved.
import select
import os, sys, string, struct, types, cPickle, cStringIO
-import socket, threading, time, locale
+import socket, threading, time
import logging, logging.handlers, logging.config
-try:
- cur_locale = locale.setlocale(locale.LC_ALL, '')
-except (ValueError, locale.Error):
- # this happens on a Solaris box which only supports "C" locale
- # or a Mac OS X box which supports very little locale stuff at all
- cur_locale = None
-
BANNER = "-- %-10s %-6s ---------------------------------------------------\n"
FINISH_UP = "Finish up, it's closing time. Messages should bear numbers 0 through 24."
@@ -407,7 +400,7 @@ def banner(nm, typ):
sys.stdout.write(sep)
sys.stdout.flush()
-def test_main():
+def test_main_inner():
rootLogger = logging.getLogger("")
rootLogger.setLevel(logging.DEBUG)
hdlr = logging.StreamHandler(sys.stdout)
@@ -474,8 +467,24 @@ def test_main():
banner("logrecv output", "end")
sys.stdout.flush()
- if cur_locale:
- locale.setlocale(locale.LC_ALL, "C")
+def test_main():
+ import locale
+ # Set the locale to the platform-dependent default. I have no idea
+ # why the test does this, but in any case we save the current locale
+ # first so we can restore it at the end.
+ try:
+ original_locale = locale.setlocale(locale.LC_ALL)
+ locale.setlocale(locale.LC_ALL, '')
+ except (ValueError, locale.Error):
+ # this happens on a Solaris box which only supports "C" locale
+ # or a Mac OS X box which supports very little locale stuff at all
+ original_locale = None
+
+ try:
+ test_main_inner()
+ finally:
+ if original_locale:
+ locale.setlocale(locale.LC_ALL, original_locale)
if __name__ == "__main__":
sys.stdout.write("test_logging\n")