summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_raise.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/Lib/test/test_raise.py b/Lib/test/test_raise.py
index 8225504..5936d75 100644
--- a/Lib/test/test_raise.py
+++ b/Lib/test/test_raise.py
@@ -303,7 +303,7 @@ class TestContext(unittest.TestCase):
except:
raise OSError()
except OSError as e:
- self.assertEqual(e.__context__, context)
+ self.assertIs(e.__context__, context)
else:
self.fail("No exception raised")
@@ -315,7 +315,7 @@ class TestContext(unittest.TestCase):
except:
raise OSError()
except OSError as e:
- self.assertNotEqual(e.__context__, context)
+ self.assertIsNot(e.__context__, context)
self.assertIsInstance(e.__context__, context)
else:
self.fail("No exception raised")
@@ -328,7 +328,7 @@ class TestContext(unittest.TestCase):
except:
raise OSError
except OSError as e:
- self.assertNotEqual(e.__context__, context)
+ self.assertIsNot(e.__context__, context)
self.assertIsInstance(e.__context__, context)
else:
self.fail("No exception raised")
@@ -415,6 +415,22 @@ class TestContext(unittest.TestCase):
except NameError as e:
self.assertIsNone(e.__context__.__context__)
+ def test_not_last(self):
+ # Context is not necessarily the last exception
+ context = Exception("context")
+ try:
+ raise context
+ except Exception:
+ try:
+ raise Exception("caught")
+ except Exception:
+ pass
+ try:
+ raise Exception("new")
+ except Exception as exc:
+ raised = exc
+ self.assertIs(raised.__context__, context)
+
def test_3118(self):
# deleting the generator caused the __context__ to be cleared
def gen():