summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2022-01-13 12:35:58 (GMT)
committerGitHub <noreply@github.com>2022-01-13 12:35:58 (GMT)
commitc590b581bba517f81ced2e6f531ccc9e2e22eab5 (patch)
treef3c49f2fa4a5eb43d403be8d8a811ebfc11f33fe /Lib
parent9c2ebb906d1c68c3d571b100c92ceb08805b94cd (diff)
downloadcpython-c590b581bba517f81ced2e6f531ccc9e2e22eab5.zip
cpython-c590b581bba517f81ced2e6f531ccc9e2e22eab5.tar.gz
cpython-c590b581bba517f81ced2e6f531ccc9e2e22eab5.tar.bz2
bpo-46328: Add sys.exception() (GH-30514)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_sys.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 38771d4..f05cd75 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -71,6 +71,69 @@ class DisplayHookTest(unittest.TestCase):
code = compile("42", "<string>", "single")
self.assertRaises(ValueError, eval, code)
+class ActiveExceptionTests(unittest.TestCase):
+ def test_exc_info_no_exception(self):
+ self.assertEqual(sys.exc_info(), (None, None, None))
+
+ def test_sys_exception_no_exception(self):
+ self.assertEqual(sys.exception(), None)
+
+ def test_exc_info_with_exception_instance(self):
+ def f():
+ raise ValueError(42)
+
+ try:
+ f()
+ except Exception as e_:
+ e = e_
+ exc_info = sys.exc_info()
+
+ self.assertIsInstance(e, ValueError)
+ self.assertIs(exc_info[0], ValueError)
+ self.assertIs(exc_info[1], e)
+ self.assertIs(exc_info[2], e.__traceback__)
+
+ def test_exc_info_with_exception_type(self):
+ def f():
+ raise ValueError
+
+ try:
+ f()
+ except Exception as e_:
+ e = e_
+ exc_info = sys.exc_info()
+
+ self.assertIsInstance(e, ValueError)
+ self.assertIs(exc_info[0], ValueError)
+ self.assertIs(exc_info[1], e)
+ self.assertIs(exc_info[2], e.__traceback__)
+
+ def test_sys_exception_with_exception_instance(self):
+ def f():
+ raise ValueError(42)
+
+ try:
+ f()
+ except Exception as e_:
+ e = e_
+ exc = sys.exception()
+
+ self.assertIsInstance(e, ValueError)
+ self.assertIs(exc, e)
+
+ def test_sys_exception_with_exception_type(self):
+ def f():
+ raise ValueError
+
+ try:
+ f()
+ except Exception as e_:
+ e = e_
+ exc = sys.exception()
+
+ self.assertIsInstance(e, ValueError)
+ self.assertIs(exc, e)
+
class ExceptHookTest(unittest.TestCase):