class TestExceptStarSplitSemantics(ExceptStarTest):
def doSplitTestNamed(self, exc, T, match_template, rest_template):
- initial_exc_info = sys.exc_info()
- exc_info = match = rest = None
+ initial_sys_exception = sys.exception()
+ sys_exception = match = rest = None
try:
try:
raise exc
except* T as e:
- exc_info = sys.exc_info()
+ sys_exception = sys.exception()
match = e
except BaseException as e:
rest = e
- if match_template:
- self.assertEqual(exc_info[1], match)
- else:
- self.assertIsNone(exc_info)
+ self.assertEqual(sys_exception, match)
self.assertExceptionIsLike(match, match_template)
self.assertExceptionIsLike(rest, rest_template)
- self.assertEqual(sys.exc_info(), initial_exc_info)
+ self.assertEqual(sys.exception(), initial_sys_exception)
def doSplitTestUnnamed(self, exc, T, match_template, rest_template):
- initial_exc_info = sys.exc_info()
- exc_info = match = rest = None
+ initial_sys_exception = sys.exception()
+ sys_exception = match = rest = None
try:
try:
raise exc
except* T:
- exc_info = sys.exc_info()
- match = sys.exc_info()[1]
+ sys_exception = match = sys.exception()
else:
if rest_template:
self.fail("Exception not raised")
except BaseException as e:
rest = e
self.assertExceptionIsLike(match, match_template)
- if match_template:
- self.assertEqual(exc_info[0], type(match_template))
self.assertExceptionIsLike(rest, rest_template)
- self.assertEqual(sys.exc_info(), initial_exc_info)
+ self.assertEqual(sys.exception(), initial_sys_exception)
def doSplitTestInExceptHandler(self, exc, T, match_template, rest_template):
try:
try:
raise ExceptionGroup("mmu", [OSError("os"), BlockingIOError("io")])
except* BlockingIOError:
- e = sys.exc_info()[1]
+ e = sys.exception()
self.assertExceptionIsLike(e,
ExceptionGroup("mmu", [BlockingIOError("io")]))
except* OSError:
- e = sys.exc_info()[1]
+ e = sys.exception()
self.assertExceptionIsLike(e,
ExceptionGroup("mmu", [OSError("os")]))
else:
try:
raise ExceptionGroup("fstu", [BlockingIOError("io")])
except* OSError:
- e = sys.exc_info()[1]
+ e = sys.exception()
self.assertExceptionIsLike(e,
ExceptionGroup("fstu", [BlockingIOError("io")]))
except* BlockingIOError:
pass
else:
self.fail("Exception not raised")
- e = sys.exc_info()[1]
+ e = sys.exception()
self.assertExceptionIsLike(e,
ExceptionGroup("n", [BlockingIOError("io")]))
else:
try:
raise orig
except* OSError:
- e = sys.exc_info()[1]
+ e = sys.exception()
raise TypeError(3) from e
except ExceptionGroup as e:
exc = e
try:
raise orig
except* (TypeError, ValueError) as e:
- e = sys.exc_info()[1]
+ e = sys.exception()
raise SyntaxError(3) from e
except ExceptionGroup as e:
exc = e
try:
raise orig
except* TypeError:
- e = sys.exc_info()[1]
+ e = sys.exception()
raise SyntaxError(3) from e
except* ValueError:
- e = sys.exc_info()[1]
+ e = sys.exception()
raise SyntaxError(4) from e
except ExceptionGroup as e:
exc = e
class TestExceptStarCleanup(ExceptStarTest):
- def test_exc_info_restored(self):
+ def test_sys_exception_restored(self):
try:
try:
raise ValueError(42)
self.assertExceptionIsLike(exc, ZeroDivisionError('division by zero'))
self.assertExceptionIsLike(exc.__context__, ValueError(42))
- self.assertEqual(sys.exc_info(), (None, None, None))
+ self.assertEqual(sys.exception(), None)
class TestExceptStar_WeirdLeafExceptions(ExceptStarTest):