diff options
| author | Neal Norwitz <nnorwitz@gmail.com> | 2005-12-17 21:33:47 (GMT) | 
|---|---|---|
| committer | Neal Norwitz <nnorwitz@gmail.com> | 2005-12-17 21:33:47 (GMT) | 
| commit | f599f424a2c8cfc490111a11203c93d23706379f (patch) | |
| tree | 972d455572879ef5b9b3979d16fb4dab0f44d9b4 /Lib/test/test_exception_variations.py | |
| parent | adb69fcdffdc50ee3e1d33b00cd874020197b445 (diff) | |
| download | cpython-f599f424a2c8cfc490111a11203c93d23706379f.zip cpython-f599f424a2c8cfc490111a11203c93d23706379f.tar.gz cpython-f599f424a2c8cfc490111a11203c93d23706379f.tar.bz2  | |
SF patch #1355913, PEP 341 - Unification of try/except and try/finally
Modified since ast-arenas was implemented.
Diffstat (limited to 'Lib/test/test_exception_variations.py')
| -rw-r--r-- | Lib/test/test_exception_variations.py | 180 | 
1 files changed, 180 insertions, 0 deletions
diff --git a/Lib/test/test_exception_variations.py b/Lib/test/test_exception_variations.py new file mode 100644 index 0000000..297a6c9 --- /dev/null +++ b/Lib/test/test_exception_variations.py @@ -0,0 +1,180 @@ + +from test.test_support import run_unittest +import unittest + +class ExceptionTestCase(unittest.TestCase): +    def test_try_except_else_finally(self): +        hit_except = False +        hit_else = False +        hit_finally = False + +        try: +            raise Exception, 'nyaa!' +        except: +            hit_except = True +        else: +            hit_else = True +        finally: +            hit_finally = True + +        self.assertTrue(hit_except) +        self.assertTrue(hit_finally) +        self.assertFalse(hit_else) + +    def test_try_except_else_finally_no_exception(self): +        hit_except = False +        hit_else = False +        hit_finally = False + +        try: +            pass +        except: +            hit_except = True +        else: +            hit_else = True +        finally: +            hit_finally = True + +        self.assertFalse(hit_except) +        self.assertTrue(hit_finally) +        self.assertTrue(hit_else) + +    def test_try_except_finally(self): +        hit_except = False +        hit_finally = False + +        try: +            raise Exception, 'yarr!' +        except: +            hit_except = True +        finally: +            hit_finally = True +             +        self.assertTrue(hit_except) +        self.assertTrue(hit_finally) + +    def test_try_except_finally_no_exception(self): +        hit_except = False +        hit_finally = False + +        try: +            pass +        except: +            hit_except = True +        finally: +            hit_finally = True + +        self.assertFalse(hit_except) +        self.assertTrue(hit_finally) +         +    def test_try_except(self): +        hit_except = False + +        try: +            raise Exception, 'ahoy!' +        except: +            hit_except = True + +        self.assertTrue(hit_except) + +    def test_try_except_no_exception(self): +        hit_except = False + +        try: +            pass +        except: +            hit_except = True + +        self.assertFalse(hit_except) + +    def test_try_except_else(self): +        hit_except = False +        hit_else = False + +        try: +            raise Exception, 'foo!' +        except: +            hit_except = True +        else: +            hit_else = True + +        self.assertFalse(hit_else) +        self.assertTrue(hit_except) + +    def test_try_except_else_no_exception(self): +        hit_except = False +        hit_else = False + +        try: +            pass +        except: +            hit_except = True +        else: +            hit_else = True + +        self.assertFalse(hit_except) +        self.assertTrue(hit_else) + +    def test_try_finally_no_exception(self): +        hit_finally = False + +        try: +            pass +        finally: +            hit_finally = True + +        self.assertTrue(hit_finally) + +    def test_nested(self): +        hit_finally = False +        hit_inner_except = False +        hit_inner_finally = False + +        try: +            try: +                raise Exception, 'inner exception' +            except: +                hit_inner_except = True +            finally: +                hit_inner_finally = True +        finally: +            hit_finally = True +             +        self.assertTrue(hit_inner_except) +        self.assertTrue(hit_inner_finally) +        self.assertTrue(hit_finally) + +    def test_nested_else(self): +        hit_else = False +        hit_finally = False +        hit_except = False +        hit_inner_except = False +        hit_inner_else = False + +        try: +            try: +                pass +            except: +                hit_inner_except = True +            else: +                hit_inner_else = True + +            raise Exception, 'outer exception' +        except: +            hit_except = True +        else: +            hit_else = True +        finally: +            hit_finally = True + +        self.assertFalse(hit_inner_except) +        self.assertTrue(hit_inner_else) +        self.assertFalse(hit_else) +        self.assertTrue(hit_finally) +        self.assertTrue(hit_except) + +def test_main(): +    run_unittest(ExceptionTestCase) + +if __name__ == '__main__': +    test_main()  | 
