From 7f86811d55a7a15cb4f29f9fad458aecaf2161d3 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 30 Jun 2011 00:00:45 +0200 Subject: [PATCH] Issue #12400: test_cprofile now restores correctly the previous sys.stderr Copy sys.stderr before replacing it, instead of using sys.__stderr__ --- Lib/test/test_cprofile.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/Lib/test/test_cprofile.py b/Lib/test/test_cprofile.py index ae17c2b6948..56766682b3c 100644 --- a/Lib/test/test_cprofile.py +++ b/Lib/test/test_cprofile.py @@ -18,16 +18,19 @@ class CProfileTest(ProfileTest): 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():