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

  1. # Python test set -- part 5, built-in exceptions
  2.  
  3. from test_support import *
  4. from types import ClassType
  5.  
  6. print '5. Built-in exceptions'
  7. # XXX This is not really enough, each *operation* should be tested!
  8.  
  9. def r(thing):
  10.     if type(thing) == ClassType:
  11.     print thing.__name__
  12.     else:
  13.     print thing
  14.  
  15. r(AttributeError)
  16. import sys
  17. try: x = sys.undefined_attribute
  18. except AttributeError: pass
  19.  
  20. r(EOFError)
  21. import sys
  22. fp = open(TESTFN, 'w')
  23. fp.close()
  24. fp = open(TESTFN, 'r')
  25. savestdin = sys.stdin
  26. try:
  27.     try:
  28.         sys.stdin = fp
  29.         x = raw_input()
  30.     except EOFError:
  31.         pass
  32. finally:
  33.     sys.stdin = savestdin
  34.     fp.close()
  35.  
  36. r(IOError)
  37. try: open('this file does not exist', 'r')
  38. except IOError: pass
  39.  
  40. r(ImportError)
  41. try: import undefined_module
  42. except ImportError: pass
  43.  
  44. r(IndexError)
  45. x = []
  46. try: a = x[10]
  47. except IndexError: pass
  48.  
  49. r(KeyError)
  50. x = {}
  51. try: a = x['key']
  52. except KeyError: pass
  53.  
  54. r(KeyboardInterrupt)
  55. print '(not testable in a script)'
  56.  
  57. r(MemoryError)
  58. print '(not safe to test)'
  59.  
  60. r(NameError)
  61. try: x = undefined_variable
  62. except NameError: pass
  63.  
  64. r(OverflowError)
  65. x = 1
  66. try:
  67.     while 1: x = x+x
  68. except OverflowError: pass
  69.  
  70. r(RuntimeError)
  71. print '(not used any more?)'
  72.  
  73. r(SyntaxError)
  74. try: exec '/\n'
  75. except SyntaxError: pass
  76.  
  77. r(SystemError)
  78. print '(hard to reproduce)'
  79.  
  80. r(SystemExit)
  81. import sys
  82. try: sys.exit(0)
  83. except SystemExit: pass
  84.  
  85. r(TypeError)
  86. try: [] + ()
  87. except TypeError: pass
  88.  
  89. r(ValueError)
  90. try: x = chr(10000)
  91. except ValueError: pass
  92.  
  93. r(ZeroDivisionError)
  94. try: x = 1/0
  95. except ZeroDivisionError: pass
  96.  
  97. unlink(TESTFN)
  98.