Skip to content

Commit 3871012

Browse files
committed
Add unit test
1 parent bf157d3 commit 3871012

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Lib/test/test_exceptions.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1817,6 +1817,29 @@ def test_memory_error_in_subinterp(self):
18171817
rc, _, err = script_helper.assert_python_ok("-c", code)
18181818
self.assertIn(b'MemoryError', err)
18191819

1820+
def test_keyerror_context(self):
1821+
# Make sure that _PyErr_SetKeyError() chains exceptions
1822+
try:
1823+
err1 = None
1824+
err2 = None
1825+
try:
1826+
d = {}
1827+
try:
1828+
raise ValueError("bug")
1829+
except Exception as exc:
1830+
err1 = exc
1831+
d[1]
1832+
except Exception as exc:
1833+
err2 = exc
1834+
1835+
self.assertIsInstance(err1, ValueError)
1836+
self.assertIsInstance(err2, KeyError)
1837+
self.assertEqual(err2.__context__, err1)
1838+
finally:
1839+
# Break any potential reference cycle
1840+
exc1 = None
1841+
exc2 = None
1842+
18201843

18211844
class NameErrorTests(unittest.TestCase):
18221845
def test_name_error_has_name(self):

0 commit comments

Comments
 (0)