| 
									
										
										
										
											1992-01-27 17:00:37 +00:00
										 |  |  | # Python test set -- part 2, opcodes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from test_support import * | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | print '2. Opcodes' | 
					
						
							|  |  |  | print 'XXX Not yet fully implemented' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | print '2.1 try inside for loop' | 
					
						
							|  |  |  | n = 0 | 
					
						
							|  |  |  | for i in range(10): | 
					
						
							|  |  |  | 	n = n+i | 
					
						
							|  |  |  | 	try: 1/0 | 
					
						
							|  |  |  | 	except NameError: pass | 
					
						
							|  |  |  | 	except ZeroDivisionError: pass | 
					
						
							|  |  |  | 	except TypeError: pass | 
					
						
							|  |  |  | 	try: pass | 
					
						
							|  |  |  | 	except: pass | 
					
						
							|  |  |  | 	try: pass | 
					
						
							|  |  |  | 	finally: pass | 
					
						
							|  |  |  | 	n = n+i | 
					
						
							|  |  |  | if n <> 90: | 
					
						
							|  |  |  | 	raise TestFailed, 'try inside for' | 
					
						
							| 
									
										
										
										
											1995-02-09 10:28:43 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | print '2.2 raise class exceptions' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AClass: pass | 
					
						
							|  |  |  | class BClass(AClass): pass | 
					
						
							|  |  |  | class CClass: pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: raise AClass() | 
					
						
							|  |  |  | except: pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: raise AClass() | 
					
						
							|  |  |  | except AClass: pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: raise BClass() | 
					
						
							|  |  |  | except AClass: pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: raise BClass() | 
					
						
							|  |  |  | except CClass: raise TestFailed | 
					
						
							|  |  |  | except: pass | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | a = AClass() | 
					
						
							|  |  |  | b = BClass() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: raise AClass, b | 
					
						
							|  |  |  | except BClass, v: raise TestFailed | 
					
						
							|  |  |  | except AClass, v: | 
					
						
							|  |  |  | 	if v != b: raise TestFailed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try: raise b | 
					
						
							|  |  |  | except AClass, v: | 
					
						
							|  |  |  | 	if v != b: raise TestFailed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | try:  raise BClass, a | 
					
						
							|  |  |  | except TypeError: pass |