home *** CD-ROM | disk | FTP | other *** search
- # 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:
- if v != b: raise TestFailed
- else: 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
-