home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyos2bin.zip / Lib / test / test_opcodes.py < prev    next >
Text File  |  1997-10-01  |  2KB  |  102 lines

  1. # Python test set -- part 2, opcodes
  2.  
  3. from test_support import *
  4.  
  5.  
  6. print '2. Opcodes'
  7. print 'XXX Not yet fully implemented'
  8.  
  9. print '2.1 try inside for loop'
  10. n = 0
  11. for 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
  22. if n <> 90:
  23.     raise TestFailed, 'try inside for'
  24.  
  25.  
  26. print '2.2 raise class exceptions'
  27.  
  28. class AClass: pass
  29. class BClass(AClass): pass
  30. class CClass: pass
  31. class DClass(AClass):
  32.     def __init__(self, ignore):
  33.     pass
  34.  
  35. try: raise AClass()
  36. except: pass
  37.  
  38. try: raise AClass()
  39. except AClass: pass
  40.  
  41. try: raise BClass()
  42. except AClass: pass
  43.  
  44. try: raise BClass()
  45. except CClass: raise TestFailed
  46. except: pass
  47.  
  48. a = AClass()
  49. b = BClass()
  50.  
  51. try: raise AClass, b
  52. except BClass, v:
  53.     if v != b: raise TestFailed
  54. else: raise TestFailed
  55.  
  56. try: raise b
  57. except AClass, v:
  58.     if v != b: raise TestFailed
  59.  
  60. # not enough arguments
  61. try:  raise BClass, a
  62. except TypeError: pass
  63.  
  64. try:  raise DClass, a
  65. except DClass, v:
  66.     if not isinstance(v, DClass):
  67.     raise TestFailed
  68.  
  69. print '2.3 comparing function objects'
  70.  
  71. f = eval('lambda: None')
  72. g = eval('lambda: None')
  73. if f != g: raise TestFailed
  74.  
  75. f = eval('lambda a: a')
  76. g = eval('lambda a: a')
  77. if f != g: raise TestFailed
  78.  
  79. f = eval('lambda a=1: a')
  80. g = eval('lambda a=1: a')
  81. if f != g: raise TestFailed
  82.  
  83. f = eval('lambda: 0')
  84. g = eval('lambda: 1')
  85. if f == g: raise TestFailed
  86.  
  87. f = eval('lambda: None')
  88. g = eval('lambda a: None')
  89. if f == g: raise TestFailed
  90.  
  91. f = eval('lambda a: None')
  92. g = eval('lambda b: None')
  93. if f == g: raise TestFailed
  94.  
  95. f = eval('lambda a: None')
  96. g = eval('lambda a=None: None')
  97. if f == g: raise TestFailed
  98.  
  99. f = eval('lambda a=0: None')
  100. g = eval('lambda a=1: None')
  101. if f == g: raise TestFailed
  102.