| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ExceptionTestCase(unittest.TestCase): | 
					
						
							|  |  |  |     def test_try_except_else_finally(self): | 
					
						
							|  |  |  |         hit_except = False | 
					
						
							|  |  |  |         hit_else = False | 
					
						
							|  |  |  |         hit_finally = False | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         try: | 
					
						
							| 
									
										
										
										
											2007-08-29 23:37:32 +00:00
										 |  |  |             raise Exception('nyaa!') | 
					
						
							| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  |         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: | 
					
						
							| 
									
										
										
										
											2007-08-29 23:37:32 +00:00
										 |  |  |             raise Exception('yarr!') | 
					
						
							| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  |         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: | 
					
						
							| 
									
										
										
										
											2007-08-29 23:37:32 +00:00
										 |  |  |             raise Exception('ahoy!') | 
					
						
							| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  |         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: | 
					
						
							| 
									
										
										
										
											2007-08-29 23:37:32 +00:00
										 |  |  |             raise Exception('foo!') | 
					
						
							| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  |         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: | 
					
						
							| 
									
										
										
										
											2007-08-29 23:37:32 +00:00
										 |  |  |                 raise Exception('inner exception') | 
					
						
							| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  |             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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-08-29 23:37:32 +00:00
										 |  |  |             raise Exception('outer exception') | 
					
						
							| 
									
										
										
										
											2006-03-01 06:19:04 +00:00
										 |  |  |         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) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							| 
									
										
										
										
											2015-04-13 15:00:43 -05:00
										 |  |  |     unittest.main() |