| |
| 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() |