From: Haoyu Bai Date: Wed, 30 Mar 2011 17:06:37 +0000 (+0800) Subject: more test for raise ... from ... X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=9f9d80b6de7f44de21e00cc4e6168da2d2fe380c;p=cython.git more test for raise ... from ... --- diff --git a/tests/run/test_raisefrom.pyx b/tests/run/test_raisefrom.pyx new file mode 100644 index 00000000..3a6110f3 --- /dev/null +++ b/tests/run/test_raisefrom.pyx @@ -0,0 +1,39 @@ +import unittest +# adapted from pyregr +class TestCause(unittest.TestCase): + def test_invalid_cause(self): + try: + raise IndexError from 5 + except TypeError as e: + self.assertIn("exception cause", str(e)) + else: + self.fail("No exception raised") + + def test_class_cause(self): + try: + raise IndexError from KeyError + except IndexError as e: + self.assertIsInstance(e.__cause__, KeyError) + else: + self.fail("No exception raised") + + def test_instance_cause(self): + cause = KeyError() + try: + raise IndexError from cause + except IndexError as e: + self.assertTrue(e.__cause__ is cause) + else: + self.fail("No exception raised") + + def test_erroneous_cause(self): + class MyException(Exception): + def __init__(self): + raise RuntimeError() + + try: + raise IndexError from MyException + except RuntimeError: + pass + else: + self.fail("No exception raised")