Staging
v0.5.1
https://github.com/python/cpython
Raw File
Tip revision: 399502c0ba39f545fcdf6230e2e163961c655480 authored by cvs2svn on 09 October 1997, 23:32:24 UTC
This commit was manufactured by cvs2svn to create tag 'r15a4'.
Tip revision: 399502c
test_opc.py
# 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
back to top