[Jython-checkins] jython: Update regrtest skips and test_support.

frank.wierzbicki jython-checkins at python.org
Sat Apr 7 04:31:13 CEST 2012


http://hg.python.org/jython/rev/97c33fee26cd
changeset:   6547:97c33fee26cd
user:        Frank Wierzbicki <fwierzbicki at gmail.com>
date:        Fri Apr 06 19:31:01 2012 -0700
summary:
  Update regrtest skips and test_support.

files:
  Lib/test/regrtest.py     |   3 ++
  Lib/test/test_support.py |  38 +++++++++++++++++++--------
  2 files changed, 29 insertions(+), 12 deletions(-)


diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1224,6 +1224,7 @@
         test_memoryview
         test_mhlib
         test_mmap
+        test_modulefinder
         test_msilib
         test_multiprocessing
         test_nis
@@ -1240,6 +1241,7 @@
         test_socket_ssl
         test_socketserver
         test_sqlite
+        test_ssl
         test_startfile
         test_strop
         test_structmembers
@@ -1249,6 +1251,7 @@
         test_tcl
         test_timeout
         test_tk
+        test_tools
         test_ttk_guionly
         test_ttk_textonly
         test_unicode_file
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -724,26 +724,39 @@
         sys.modules.update(self.original_modules)
 
 
-class EnvironmentVarGuard(object):
+class EnvironmentVarGuard(UserDict.DictMixin):
 
     """Class to help protect the environment variable properly.  Can be used as
     a context manager."""
 
     def __init__(self):
+        self._environ = os.environ
         self._changed = {}
 
-    def set(self, envvar, value):
+    def __getitem__(self, envvar):
+        return self._environ[envvar]
+
+    def __setitem__(self, envvar, value):
         # Remember the initial value on the first access
         if envvar not in self._changed:
-            self._changed[envvar] = os.environ.get(envvar)
-        os.environ[envvar] = value
+            self._changed[envvar] = self._environ.get(envvar)
+        self._environ[envvar] = value
+
+    def __delitem__(self, envvar):
+        # Remember the initial value on the first access
+        if envvar not in self._changed:
+            self._changed[envvar] = self._environ.get(envvar)
+        if envvar in self._environ:
+            del self._environ[envvar]
+
+    def keys(self):
+        return self._environ.keys()
+
+    def set(self, envvar, value):
+        self[envvar] = value
 
     def unset(self, envvar):
-        # Remember the initial value on the first access
-        if envvar not in self._changed:
-            self._changed[envvar] = os.environ.get(envvar)
-        if envvar in os.environ:
-            del os.environ[envvar]
+        del self[envvar]
 
     def __enter__(self):
         return self
@@ -751,10 +764,11 @@
     def __exit__(self, *ignore_exc):
         for (k, v) in self._changed.items():
             if v is None:
-                if k in os.environ:
-                    del os.environ[k]
+                if k in self._environ:
+                    del self._environ[k]
             else:
-                os.environ[k] = v
+                self._environ[k] = v
+        os.environ = self._environ
 
 
 class TransientResource(object):

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


More information about the Jython-checkins mailing list