[Python-checkins] r71984 - in python/trunk/Lib/test: test_optparse.py test_posixpath.py test_site.py test_tempfile.py test_urllib.py test_xmlrpc.py

walter.doerwald python-checkins at python.org
Sun Apr 26 22:51:44 CEST 2009


Author: walter.doerwald
Date: Sun Apr 26 22:51:44 2009
New Revision: 71984

Log:
Use test.test_support.EnvironmentVarGuard where tests change environment vars.


Modified:
   python/trunk/Lib/test/test_optparse.py
   python/trunk/Lib/test/test_posixpath.py
   python/trunk/Lib/test/test_site.py
   python/trunk/Lib/test/test_tempfile.py
   python/trunk/Lib/test/test_urllib.py
   python/trunk/Lib/test/test_xmlrpc.py

Modified: python/trunk/Lib/test/test_optparse.py
==============================================================================
--- python/trunk/Lib/test/test_optparse.py	(original)
+++ python/trunk/Lib/test/test_optparse.py	Sun Apr 26 22:51:44 2009
@@ -1464,15 +1464,9 @@
         # we must restore its original value -- otherwise, this test
         # screws things up for other tests when it's part of the Python
         # test suite.
-        orig_columns = os.environ.get('COLUMNS')
-        os.environ['COLUMNS'] = str(columns)
-        try:
+        with test_support.EnvironmentVarGuard() as env:
+            env.set('COLUMNS', str(columns))
             return InterceptingOptionParser(option_list=options)
-        finally:
-            if orig_columns is None:
-                del os.environ['COLUMNS']
-            else:
-                os.environ['COLUMNS'] = orig_columns
 
     def assertHelpEquals(self, expected_output):
         if type(expected_output) is types.UnicodeType:
@@ -1499,16 +1493,10 @@
         self.assertHelpEquals(_expected_help_long_opts_first)
 
     def test_help_title_formatter(self):
-        save = os.environ.get("COLUMNS")
-        try:
-            os.environ["COLUMNS"] = "80"
+        with test_support.EnvironmentVarGuard() as env:
+            env.set("COLUMNS", "80")
             self.parser.formatter = TitledHelpFormatter()
             self.assertHelpEquals(_expected_help_title_formatter)
-        finally:
-            if save is not None:
-                os.environ["COLUMNS"] = save
-            else:
-                del os.environ["COLUMNS"]
 
     def test_wrap_columns(self):
         # Ensure that wrapping respects $COLUMNS environment variable.

Modified: python/trunk/Lib/test/test_posixpath.py
==============================================================================
--- python/trunk/Lib/test/test_posixpath.py	(original)
+++ python/trunk/Lib/test/test_posixpath.py	Sun Apr 26 22:51:44 2009
@@ -345,10 +345,9 @@
             self.assert_(isinstance(posixpath.expanduser("~root/"), basestring))
             self.assert_(isinstance(posixpath.expanduser("~foo/"), basestring))
 
-            orig_home = os.environ['HOME']
-            os.environ['HOME'] = '/'
-            self.assertEqual(posixpath.expanduser("~"), "/")
-            os.environ['HOME'] = orig_home
+            with test_support.EnvironmentVarGuard() as env:
+                env.set('HOME', '/')
+                self.assertEqual(posixpath.expanduser("~"), "/")
 
         self.assertRaises(TypeError, posixpath.expanduser)
 

Modified: python/trunk/Lib/test/test_site.py
==============================================================================
--- python/trunk/Lib/test/test_site.py	(original)
+++ python/trunk/Lib/test/test_site.py	Sun Apr 26 22:51:44 2009
@@ -5,7 +5,7 @@
 
 """
 import unittest
-from test.test_support import run_unittest, TESTFN
+from test.test_support import run_unittest, TESTFN, EnvironmentVarGuard
 import __builtin__
 import os
 import sys

Modified: python/trunk/Lib/test/test_tempfile.py
==============================================================================
--- python/trunk/Lib/test/test_tempfile.py	(original)
+++ python/trunk/Lib/test/test_tempfile.py	Sun Apr 26 22:51:44 2009
@@ -149,13 +149,11 @@
         # _candidate_tempdir_list contains the expected directories
 
         # Make sure the interesting environment variables are all set.
-        added = []
-        try:
+        with test_support.EnvironmentVarGuard() as env:
             for envname in 'TMPDIR', 'TEMP', 'TMP':
                 dirname = os.getenv(envname)
                 if not dirname:
-                    os.environ[envname] = os.path.abspath(envname)
-                    added.append(envname)
+                    env.set(envname, os.path.abspath(envname))
 
             cand = tempfile._candidate_tempdir_list()
 
@@ -173,9 +171,6 @@
 
             # Not practical to try to verify the presence of OS-specific
             # paths in this list.
-        finally:
-            for p in added:
-                del os.environ[p]
 
 test_classes.append(test__candidate_tempdir_list)
 

Modified: python/trunk/Lib/test/test_urllib.py
==============================================================================
--- python/trunk/Lib/test/test_urllib.py	(original)
+++ python/trunk/Lib/test/test_urllib.py	Sun Apr 26 22:51:44 2009
@@ -98,20 +98,20 @@
 class ProxyTests(unittest.TestCase):
 
     def setUp(self):
-        # Save all proxy related env vars
-        self._saved_environ = dict([(k, v) for k, v in os.environ.iteritems()
-                                    if k.lower().find('proxy') >= 0])
+        # Records changes to env vars
+        self.env = test_support.EnvironmentVarGuard()
         # Delete all proxy related env vars
-        for k in self._saved_environ:
-            del os.environ[k]
+        for k, v in os.environ.iteritems():
+            if 'proxy' in k.lower():
+                env.unset(k)
 
     def tearDown(self):
         # Restore all proxy related env vars
-        for k, v in self._saved_environ.iteritems():
-            os.environ[k] = v
+        self.env.__exit__()
+        del self.env
 
     def test_getproxies_environment_keep_no_proxies(self):
-        os.environ['NO_PROXY'] = 'localhost'
+        self.env.set('NO_PROXY', 'localhost')
         proxies = urllib.getproxies_environment()
         # getproxies_environment use lowered case truncated (no '_proxy') keys
         self.assertEquals('localhost', proxies['no'])

Modified: python/trunk/Lib/test/test_xmlrpc.py
==============================================================================
--- python/trunk/Lib/test/test_xmlrpc.py	(original)
+++ python/trunk/Lib/test/test_xmlrpc.py	Sun Apr 26 22:51:44 2009
@@ -604,25 +604,25 @@
         self.cgi = None
 
     def test_cgi_get(self):
-        os.environ['REQUEST_METHOD'] = 'GET'
-        # if the method is GET and no request_text is given, it runs handle_get
-        # get sysout output
-        tmp = sys.stdout
-        sys.stdout = open(test_support.TESTFN, "w")
-        self.cgi.handle_request()
-        sys.stdout.close()
-        sys.stdout = tmp
+        with test_support.EnvironmentVarGuard() as env:
+            env.set('REQUEST_METHOD', 'GET')
+            # if the method is GET and no request_text is given, it runs handle_get
+            # get sysout output
+            tmp = sys.stdout
+            sys.stdout = open(test_support.TESTFN, "w")
+            self.cgi.handle_request()
+            sys.stdout.close()
+            sys.stdout = tmp
 
-        # parse Status header
-        handle = open(test_support.TESTFN, "r").read()
-        status = handle.split()[1]
-        message = ' '.join(handle.split()[2:4])
+            # parse Status header
+            handle = open(test_support.TESTFN, "r").read()
+            status = handle.split()[1]
+            message = ' '.join(handle.split()[2:4])
 
-        self.assertEqual(status, '400')
-        self.assertEqual(message, 'Bad Request')
+            self.assertEqual(status, '400')
+            self.assertEqual(message, 'Bad Request')
 
-        os.remove(test_support.TESTFN)
-        os.environ['REQUEST_METHOD'] = ''
+            os.remove(test_support.TESTFN)
 
     def test_cgi_xmlrpc_response(self):
         data = """<?xml version='1.0'?>
@@ -645,11 +645,9 @@
         sys.stdin = open("xmldata.txt", "r")
         sys.stdout = open(test_support.TESTFN, "w")
 
-        os.environ['CONTENT_LENGTH'] = str(len(data))
-        try:
+        with test_support.EnvironmentVarGuard() as env:
+            env.set('CONTENT_LENGTH', str(len(data)))
             self.cgi.handle_request()
-        finally:
-            del os.environ['CONTENT_LENGTH']
 
         sys.stdin.close()
         sys.stdout.close()


More information about the Python-checkins mailing list