• Barry Warsaw's avatar
    Complete the absolute import patch for the test suite. All relative · 408b6d34
    Barry Warsaw yazdı
    imports of test modules now import from the test package.  Other
    related oddities are also fixed (like DeprecationWarning filters that
    weren't specifying the full import part, etc.).  Also did a general
    code cleanup to remove all "from test.test_support import *"'s.  Other
    from...import *'s weren't changed.
    408b6d34
test_opcodes.py 1.94 KB
# Python test set -- part 2, opcodes

from test.test_support import TestFailed


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, "v!=b"
else: raise TestFailed, "no exception"

try: raise b
except AClass, v:
    if v != b: raise TestFailed, "v!=b AClass"

# not enough arguments
try:  raise BClass, a
except TypeError: pass

try:  raise DClass, a
except DClass, v:
    if not isinstance(v, DClass):
        raise TestFailed, "v not DClass"

print '2.3 comparing function objects'

f = eval('lambda: None')
g = eval('lambda: None')
if f == g: raise TestFailed, "functions should not be same"

f = eval('lambda a: a')
g = eval('lambda a: a')
if f == g: raise TestFailed, "functions should not be same"

f = eval('lambda a=1: a')
g = eval('lambda a=1: a')
if f == g: raise TestFailed, "functions should not be same"

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