summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_opcodes.py
blob: b1e944b4d2f6585f5546d0f46352999466ccd57e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 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

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