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