From: Benjamin Peterson Date: Tue, 15 Mar 2011 20:54:50 +0000 (-0500) Subject: PyErr_Print can leave sys.last_traceback hanging around; kill it X-Git-Tag: v3.3.0a1~2903^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=47afc2af790478dd0cdee628e9c9035766e5d4d4;p=thirdparty%2FPython%2Fcpython.git PyErr_Print can leave sys.last_traceback hanging around; kill it --- diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index 7cda0dced9af..643e2e66ebe7 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -265,28 +265,26 @@ class DisTests(unittest.TestCase): self.do_disassembly_test(method_bytecode, dis_c_instance_method_bytes) def test_dis_none(self): + try: + del sys.last_traceback + except AttributeError: + pass self.assertRaises(RuntimeError, dis.dis, None) def test_dis_object(self): self.assertRaises(TypeError, dis.dis, object()) def test_dis_traceback(self): - not_defined = object() - tb = None - old = getattr(sys, 'last_traceback', not_defined) - - def cleanup(): - if old is not not_defined: - sys.last_traceback = old - else: - del sys.last_traceback + try: + del sys.last_traceback + except AttributeError: + pass try: 1/0 except Exception as e: tb = e.__traceback__ sys.last_traceback = tb - self.addCleanup(cleanup) tb_dis = self.get_disassemble_as_string(tb.tb_frame.f_code, tb.tb_lasti) self.do_disassembly_test(None, tb_dis)