blob: 107b697dd5c4f352c286949cc5e92948cab754d5 [file] [log] [blame]
Guido van Rossum3bead091992-01-27 17:00:37 +00001# Python test set -- part 2, opcodes
2
3from test_support import *
4
5
6print '2. Opcodes'
7print 'XXX Not yet fully implemented'
8
9print '2.1 try inside for loop'
10n = 0
11for i in range(10):
12 n = n+i
13 try: 1/0
14 except NameError: pass
15 except ZeroDivisionError: pass
16 except TypeError: pass
Guido van Rossum3bead091992-01-27 17:00:37 +000017 try: pass
18 except: pass
19 try: pass
20 finally: pass
21 n = n+i
22if n <> 90:
23 raise TestFailed, 'try inside for'
Guido van Rossum6de668f1995-02-09 10:28:43 +000024
25
26print '2.2 raise class exceptions'
27
28class AClass: pass
29class BClass(AClass): pass
30class CClass: pass
Barry Warsaw558f66f1997-08-22 21:28:05 +000031class DClass(AClass):
32 def __init__(self, ignore):
33 pass
Guido van Rossum6de668f1995-02-09 10:28:43 +000034
35try: raise AClass()
36except: pass
37
38try: raise AClass()
39except AClass: pass
40
41try: raise BClass()
42except AClass: pass
43
44try: raise BClass()
45except CClass: raise TestFailed
46except: pass
47
48a = AClass()
49b = BClass()
50
51try: raise AClass, b
52except BClass, v: raise TestFailed
53except AClass, v:
54 if v != b: raise TestFailed
55
56
57try: raise b
58except AClass, v:
59 if v != b: raise TestFailed
60
Barry Warsaw558f66f1997-08-22 21:28:05 +000061# not enough arguments
Guido van Rossum6de668f1995-02-09 10:28:43 +000062try: raise BClass, a
63except TypeError: pass
Guido van Rossum570278b1997-08-05 16:52:50 +000064
Barry Warsaw558f66f1997-08-22 21:28:05 +000065try: raise DClass, a
66except DClass, v:
67 if not isinstance(v, DClass):
68 raise TestFailed
Guido van Rossum570278b1997-08-05 16:52:50 +000069
70print '2.3 comparing function objects'
71
72f = eval('lambda: None')
73g = eval('lambda: None')
74if f != g: raise TestFailed
75
76f = eval('lambda a: a')
77g = eval('lambda a: a')
78if f != g: raise TestFailed
79
80f = eval('lambda a=1: a')
81g = eval('lambda a=1: a')
82if f != g: raise TestFailed
83
84f = eval('lambda: 0')
85g = eval('lambda: 1')
86if f == g: raise TestFailed
87
88f = eval('lambda: None')
89g = eval('lambda a: None')
90if f == g: raise TestFailed
91
92f = eval('lambda a: None')
93g = eval('lambda b: None')
94if f == g: raise TestFailed
95
96f = eval('lambda a: None')
97g = eval('lambda a=None: None')
98if f == g: raise TestFailed
99
100f = eval('lambda a=0: None')
101g = eval('lambda a=1: None')
102if f == g: raise TestFailed