[Python-checkins] cpython: Issue #12400: test_cprofile now restores correctly the previous sys.stderr

victor.stinner python-checkins at python.org
Thu Jun 30 00:00:58 CEST 2011


http://hg.python.org/cpython/rev/6edb7c153105
changeset:   71085:6edb7c153105
user:        Victor Stinner <victor.stinner at haypocalc.com>
date:        Thu Jun 30 00:00:45 2011 +0200
summary:
  Issue #12400: test_cprofile now restores correctly the previous sys.stderr

Copy sys.stderr before replacing it, instead of using sys.__stderr__

files:
  Lib/test/test_cprofile.py |  23 +++++++++++++----------
  1 files changed, 13 insertions(+), 10 deletions(-)


diff --git a/Lib/test/test_cprofile.py b/Lib/test/test_cprofile.py
--- a/Lib/test/test_cprofile.py
+++ b/Lib/test/test_cprofile.py
@@ -18,16 +18,19 @@
     def test_bad_counter_during_dealloc(self):
         import _lsprof
         # Must use a file as StringIO doesn't trigger the bug.
-        with open(TESTFN, 'w') as file:
-            sys.stderr = file
-            try:
-                obj = _lsprof.Profiler(lambda: int)
-                obj.enable()
-                obj = _lsprof.Profiler(1)
-                obj.disable()
-            finally:
-                sys.stderr = sys.__stderr__
-        unlink(TESTFN)
+        orig_stderr = sys.stderr
+        try:
+            with open(TESTFN, 'w') as file:
+                sys.stderr = file
+                try:
+                    obj = _lsprof.Profiler(lambda: int)
+                    obj.enable()
+                    obj = _lsprof.Profiler(1)
+                    obj.disable()
+                finally:
+                    sys.stderr = orig_stderr
+        finally:
+            unlink(TESTFN)
 
 
 def test_main():

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


More information about the Python-checkins mailing list