From a287b31bcb065e4122400cb59167340d25480e6d Mon Sep 17 00:00:00 2001 From: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Date: Tue, 18 Jan 2022 07:05:16 +0000 Subject: [PATCH] bpo-46411: Remove unnecessary calls to sys.exc_info() in tests (GH-30638) --- Lib/test/test_argparse.py | 10 ++++------ Lib/test/test_builtin.py | 4 ++-- Lib/test/test_inspect.py | 4 ++-- Lib/test/test_logging.py | 4 ++-- Lib/test/test_raise.py | 4 ++-- Lib/test/test_zipimport.py | 4 ++-- 6 files changed, 14 insertions(+), 16 deletions(-) diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 4c23610b9e9..afcb88ff5ce 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -102,8 +102,8 @@ def stderr_to_parser_error(parse_args, *args, **kwargs): if getattr(result, key) is sys.stderr: setattr(result, key, old_stderr) return result - except SystemExit: - code = sys.exc_info()[1].code + except SystemExit as e: + code = e.code stdout = sys.stdout.getvalue() stderr = sys.stderr.getvalue() raise ArgumentParserError( @@ -1850,8 +1850,7 @@ class TestActionUserDefined(ParserTestCase): raise AssertionError('value: %s' % value) assert expected_ns == namespace, ('expected %s, got %s' % (expected_ns, namespace)) - except AssertionError: - e = sys.exc_info()[1] + except AssertionError as e: raise ArgumentParserError('opt_action failed: %s' % e) setattr(namespace, 'spam', value) @@ -1876,8 +1875,7 @@ class TestActionUserDefined(ParserTestCase): raise AssertionError('value: %s' % value) assert expected_ns == namespace, ('expected %s, got %s' % (expected_ns, namespace)) - except AssertionError: - e = sys.exc_info()[1] + except AssertionError as e: raise ArgumentParserError('arg_action failed: %s' % e) setattr(namespace, 'badger', value) diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index 74568032219..4b0b15f0a93 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -581,8 +581,8 @@ class BuiltinTest(unittest.TestCase): # dir(traceback) try: raise IndexError - except: - self.assertEqual(len(dir(sys.exc_info()[2])), 4) + except IndexError as e: + self.assertEqual(len(dir(e.__traceback__)), 4) # test that object has a __dir__() self.assertEqual(sorted([].__dir__()), dir([])) diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 56168817a27..67372cca6ed 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -135,8 +135,8 @@ class TestPredicates(IsTestBase): self.istest(inspect.iscode, 'mod.spam.__code__') try: 1/0 - except: - tb = sys.exc_info()[2] + except Exception as e: + tb = e.__traceback__ self.istest(inspect.isframe, 'tb.tb_frame') self.istest(inspect.istraceback, 'tb') if hasattr(types, 'GetSetDescriptorType'): diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index e61ccdf86bd..7c38676012b 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -5524,8 +5524,8 @@ for when, exp in (('S', 1), print('currentSecond: %s' % currentSecond, file=sys.stderr) print('r: %s' % r, file=sys.stderr) print('result: %s' % result, file=sys.stderr) - except Exception: - print('exception in diagnostic code: %s' % sys.exc_info()[1], file=sys.stderr) + except Exception as e: + print('exception in diagnostic code: %s' % e, file=sys.stderr) self.assertEqual(exp, actual) rh.close() setattr(TimedRotatingFileHandlerTest, "test_compute_rollover_%s" % when, test_compute_rollover) diff --git a/Lib/test/test_raise.py b/Lib/test/test_raise.py index 8dc62a933e8..8225504c475 100644 --- a/Lib/test/test_raise.py +++ b/Lib/test/test_raise.py @@ -12,8 +12,8 @@ import unittest def get_tb(): try: raise OSError() - except: - return sys.exc_info()[2] + except OSError as e: + return e.__traceback__ class Context: diff --git a/Lib/test/test_zipimport.py b/Lib/test/test_zipimport.py index 392dcfa87a1..85dbf4d8f68 100644 --- a/Lib/test/test_zipimport.py +++ b/Lib/test/test_zipimport.py @@ -710,8 +710,8 @@ class UncompressedZipImportTestCase(ImportHooksBaseTestCase): def doTraceback(self, module): try: module.do_raise() - except: - tb = sys.exc_info()[2].tb_next + except Exception as e: + tb = e.__traceback__.tb_next f,lno,n,line = extract_tb(tb, 1)[0] self.assertEqual(line, raise_src.strip())