]> granicus.if.org Git - python/commitdiff
test_default_encoding_issues(): Fully restore sys.setdefaultencoding.
authorTim Peters <tim.peters@gmail.com>
Fri, 8 Apr 2005 18:00:59 +0000 (18:00 +0000)
committerTim Peters <tim.peters@gmail.com>
Fri, 8 Apr 2005 18:00:59 +0000 (18:00 +0000)
test_site often failed under "regrtest.py -r", because this xmlrpc test
left sys with a setdefaultencoding attribute, but loading site.py removes
that attribute and test_site.py verifies the attribute is gone.  Changed
this test to get rid of sys.setdefaultencoding if it didn't exist when
this test started.

Don't know whether this is a bugfix (backport) candidate.

Lib/test/test_xmlrpc.py

index b80de18f9956a9802c8b2c7ec104e1f3d57a4474..df0893dbeaafa745baa9ba71493e318ed1acab7a 100644 (file)
@@ -80,13 +80,20 @@ class XMLRPCTestCase(unittest.TestCase):
                       </value></param>
                   </params>
                   """
+
+        # sys.setdefaultencoding() normally doesn't exist after site.py is
+        # loaded.  reload(sys) is the way to get it back.
         old_encoding = sys.getdefaultencoding()
+        setdefaultencoding_existed = hasattr(sys, "setdefaultencoding")
         reload(sys) # ugh!
         sys.setdefaultencoding("iso-8859-1")
         try:
             (s, d), m = xmlrpclib.loads(utf8)
         finally:
             sys.setdefaultencoding(old_encoding)
+            if not setdefaultencoding_existed:
+                del sys.setdefaultencoding
+
         items = d.items()
         if have_unicode:
             self.assertEquals(s, u"abc \x95")