Kaydet (Commit) 0b679629 authored tarafından Georg Brandl's avatar Georg Brandl

Convert test_opcodes to unittest.

üst 2f03760a
test_opcodes
2. Opcodes
XXX Not yet fully implemented
2.1 try inside for loop
2.2 raise class exceptions
2.3 comparing function objects
# Python test set -- part 2, opcodes # Python test set -- part 2, opcodes
from test.test_support import TestFailed from test.test_support import run_unittest
import unittest
print '2. Opcodes' class OpcodeTest(unittest.TestCase):
print 'XXX Not yet fully implemented'
def test_try_inside_for_loop(self):
print '2.1 try inside for loop' n = 0
n = 0 for i in range(10):
for i in range(10): n = n+i
n = n+i try: 1/0
try: 1/0 except NameError: pass
except NameError: pass except ZeroDivisionError: pass
except ZeroDivisionError: pass except TypeError: pass
except TypeError: pass try: pass
try: pass except: pass
except: pass try: pass
try: pass finally: pass
finally: pass n = n+i
n = n+i if n != 90:
if n != 90: self.fail('try inside for')
raise TestFailed, 'try inside for'
def test_raise_class_exceptions(self):
print '2.2 raise class exceptions' class AClass: pass
class BClass(AClass): pass
class AClass: pass class CClass: pass
class BClass(AClass): pass class DClass(AClass):
class CClass: pass def __init__(self, ignore):
class DClass(AClass): pass
def __init__(self, ignore):
pass try: raise AClass()
except: pass
try: raise AClass()
except: pass try: raise AClass()
except AClass: pass
try: raise AClass()
except AClass: pass try: raise BClass()
except AClass: pass
try: raise BClass()
except AClass: pass try: raise BClass()
except CClass: self.fail()
try: raise BClass() except: pass
except CClass: raise TestFailed
except: pass a = AClass()
b = BClass()
a = AClass()
b = BClass() try: raise AClass, b
except BClass, v:
try: raise AClass, b if v != b: self.fail("v!=b")
except BClass, v: else: self.fail("no exception")
if v != b: raise TestFailed, "v!=b"
else: raise TestFailed, "no exception" try: raise b
except AClass, v:
try: raise b if v != b: self.fail("v!=b AClass")
except AClass, v: else:
if v != b: raise TestFailed, "v!=b AClass" self.fail("no exception")
# not enough arguments # not enough arguments
try: raise BClass, a try: raise BClass, a
except TypeError: pass except TypeError: pass
else: self.fail("no exception")
try: raise DClass, a
except DClass, v: try: raise DClass, a
if not isinstance(v, DClass): except DClass, v:
raise TestFailed, "v not DClass" self.assert_(isinstance(v, DClass))
else:
print '2.3 comparing function objects' self.fail("no exception")
f = eval('lambda: None') def test_compare_function_objects(self):
g = eval('lambda: None')
if f == g: raise TestFailed, "functions should not be same" f = eval('lambda: None')
g = eval('lambda: None')
f = eval('lambda a: a') self.failIf(f == g)
g = eval('lambda a: a')
if f == g: raise TestFailed, "functions should not be same" f = eval('lambda a: a')
g = eval('lambda a: a')
f = eval('lambda a=1: a') self.failIf(f == g)
g = eval('lambda a=1: a')
if f == g: raise TestFailed, "functions should not be same" f = eval('lambda a=1: a')
g = eval('lambda a=1: a')
f = eval('lambda: 0') self.failIf(f == g)
g = eval('lambda: 1')
if f == g: raise TestFailed f = eval('lambda: 0')
g = eval('lambda: 1')
f = eval('lambda: None') self.failIf(f == g)
g = eval('lambda a: None')
if f == g: raise TestFailed f = eval('lambda: None')
g = eval('lambda a: None')
f = eval('lambda a: None') self.failIf(f == g)
g = eval('lambda b: None')
if f == g: raise TestFailed f = eval('lambda a: None')
g = eval('lambda b: None')
f = eval('lambda a: None') self.failIf(f == g)
g = eval('lambda a=None: None')
if f == g: raise TestFailed f = eval('lambda a: None')
g = eval('lambda a=None: None')
f = eval('lambda a=0: None') self.failIf(f == g)
g = eval('lambda a=1: None')
if f == g: raise TestFailed f = eval('lambda a=0: None')
g = eval('lambda a=1: None')
self.failIf(f == g)
def test_main():
run_unittest(OpcodeTest)
if __name__ == '__main__':
test_main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment