Restore the locale to "C" on exit.
If this doesn't happen, it leaves the locale in a state that can cause
other tests to fail. For example, running test_strptime,
test_logging, and test_time in that order.
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index ecf0e68..1932293 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -30,11 +30,11 @@
import logging, logging.handlers, logging.config
try:
- locale.setlocale(locale.LC_ALL, '')
+ 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
- pass
+ cur_locale = None
BANNER = "-- %-10s %-6s ---------------------------------------------------\n"
@@ -474,6 +474,9 @@
banner("logrecv output", "end")
sys.stdout.flush()
+ if cur_locale:
+ locale.setlocale(locale.LC_ALL, "C")
+
if __name__ == "__main__":
sys.stdout.write("test_logging\n")
test_main()