mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # 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'
 | |
| 
 | |
| 
 | |
| print '2.2 raise class exceptions'
 | |
| 
 | |
| class AClass: pass
 | |
| class BClass(AClass): pass
 | |
| class CClass: pass
 | |
| class DClass(AClass):
 | |
|     def __init__(self, ignore):
 | |
| 	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
 | |
| 
 | |
| # not enough arguments
 | |
| try:  raise BClass, a
 | |
| except TypeError: pass
 | |
| 
 | |
| try:  raise DClass, a
 | |
| except DClass, v:
 | |
|     if not isinstance(v, DClass):
 | |
| 	raise TestFailed
 | |
| 
 | |
| print '2.3 comparing function objects'
 | |
| 
 | |
| f = eval('lambda: None')
 | |
| g = eval('lambda: None')
 | |
| if f != g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda a: a')
 | |
| g = eval('lambda a: a')
 | |
| if f != g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda a=1: a')
 | |
| g = eval('lambda a=1: a')
 | |
| if f != g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda: 0')
 | |
| g = eval('lambda: 1')
 | |
| if f == g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda: None')
 | |
| g = eval('lambda a: None')
 | |
| if f == g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda a: None')
 | |
| g = eval('lambda b: None')
 | |
| if f == g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda a: None')
 | |
| g = eval('lambda a=None: None')
 | |
| if f == g: raise TestFailed
 | |
| 
 | |
| f = eval('lambda a=0: None')
 | |
| g = eval('lambda a=1: None')
 | |
| if f == g: raise TestFailed
 | 
