blob: 656e00af243915fa10372bcae6dbea74f60f28bc [file] [log] [blame]
Guido van Rossum5c971671996-07-22 15:23:25 +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
17 try: pass
18 except: pass
19 try: pass
20 finally: pass
21 n = n+i
22if n <> 90:
23 raise TestFailed, 'try inside for'
24
25
26print '2.2 raise class exceptions'
27
28class AClass: pass
29class BClass(AClass): pass
30class CClass: pass
31
32try: raise AClass()
33except: pass
34
35try: raise AClass()
36except AClass: pass
37
38try: raise BClass()
39except AClass: pass
40
41try: raise BClass()
42except CClass: raise TestFailed
43except: pass
44
45a = AClass()
46b = BClass()
47
48try: raise AClass, b
49except BClass, v: raise TestFailed
50except AClass, v:
51 if v != b: raise TestFailed
52
53
54try: raise b
55except AClass, v:
56 if v != b: raise TestFailed
57
58try: raise BClass, a
59except TypeError: pass
Guido van Rossumff712aa1997-08-15 00:45:26 +000060
61
62print '2.3 comparing function objects'
63
64f = eval('lambda: None')
65g = eval('lambda: None')
66if f != g: raise TestFailed
67
68f = eval('lambda a: a')
69g = eval('lambda a: a')
70if f != g: raise TestFailed
71
72f = eval('lambda a=1: a')
73g = eval('lambda a=1: a')
74if f != g: raise TestFailed
75
76f = eval('lambda: 0')
77g = eval('lambda: 1')
78if f == g: raise TestFailed
79
80f = eval('lambda: None')
81g = eval('lambda a: None')
82if f == g: raise TestFailed
83
84f = eval('lambda a: None')
85g = eval('lambda b: None')
86if f == g: raise TestFailed
87
88f = eval('lambda a: None')
89g = eval('lambda a=None: None')
90if f == g: raise TestFailed
91
92f = eval('lambda a=0: None')
93g = eval('lambda a=1: None')
94if f == g: raise TestFailed