[Python-checkins] cpython: Issue #14135: Make sure tests don't leave the locale changed for any

brett.cannon python-checkins at python.org
Mon Apr 1 18:53:28 CEST 2013


http://hg.python.org/cpython/rev/4fcd50a6dca7
changeset:   83052:4fcd50a6dca7
user:        Brett Cannon <brett at python.org>
date:        Mon Apr 01 12:53:13 2013 -0400
summary:
  Issue #14135: Make sure tests don't leave the locale changed for any
category.

Thanks to Westley Martinez for trying to fix the issue and Atsuo
Ishimoto for an initial patch.

files:
  Lib/test/regrtest.py |  11 ++++++++++-
  1 files changed, 10 insertions(+), 1 deletions(-)


diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -127,6 +127,7 @@
 import faulthandler
 import io
 import json
+import locale
 import logging
 import os
 import platform
@@ -1061,7 +1062,7 @@
                  'sys.warnoptions', 'threading._dangling',
                  'multiprocessing.process._dangling',
                  'sysconfig._CONFIG_VARS', 'sysconfig._INSTALL_SCHEMES',
-                 'support.TESTFN',
+                 'support.TESTFN', 'locale'
                 )
 
     def get_sys_argv(self):
@@ -1230,6 +1231,14 @@
             elif os.path.isdir(support.TESTFN):
                 shutil.rmtree(support.TESTFN)
 
+    _locale_categories = [getattr(locale, lc)
+                          for lc in dir(locale) if lc.startswith('LC_')]
+    def get_locale(self):
+        return tuple(map(locale.getlocale, self._locale_categories))
+    def restore_locale(self, saved):
+        for category, setting in zip(self._locale_categories, saved):
+            locale.setlocale(category, setting)
+
     def resource_info(self):
         for name in self.resources:
             method_suffix = name.replace('.', '_')

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list