(py-electric-colon): use a save-excursion instead of a progn in
[python/dscho.git] / Lib / test / test_exceptions.py
blobcf7c50dbe09cc3ebba631f35edecd2092e4106b4
1 # Python test set -- part 5, built-in exceptions
3 from test_support import *
5 print '5. Built-in exceptions'
6 # XXX This is not really enough, each *operation* should be tested!
8 def r(name): print name
10 r(AttributeError)
11 import sys
12 try: x = sys.undefined_attribute
13 except AttributeError: pass
15 r(EOFError)
16 import sys
17 fp = open(TESTFN, 'w')
18 fp.close()
19 fp = open(TESTFN, 'r')
20 savestdin = sys.stdin
21 try:
22 try:
23 sys.stdin = fp
24 x = raw_input()
25 except EOFError:
26 pass
27 finally:
28 sys.stdin = savestdin
29 fp.close()
31 r(IOError)
32 try: open('this file does not exist', 'r')
33 except IOError: pass
35 r(ImportError)
36 try: import undefined_module
37 except ImportError: pass
39 r(IndexError)
40 x = []
41 try: a = x[10]
42 except IndexError: pass
44 r(KeyError)
45 x = {}
46 try: a = x['key']
47 except KeyError: pass
49 r(KeyboardInterrupt)
50 print '(not testable in a script)'
52 r(MemoryError)
53 print '(not safe to test)'
55 r(NameError)
56 try: x = undefined_variable
57 except NameError: pass
59 r(OverflowError)
60 x = 1
61 try:
62 while 1: x = x+x
63 except OverflowError: pass
65 r(RuntimeError)
66 print '(not used any more?)'
68 r(SyntaxError)
69 try: exec('/\n')
70 except SyntaxError: pass
72 r(SystemError)
73 print '(hard to reproduce)'
75 r(SystemExit)
76 import sys
77 try: sys.exit(0)
78 except SystemExit: pass
80 r(TypeError)
81 try: [] + ()
82 except TypeError: pass
84 r(ValueError)
85 try: x = chr(10000)
86 except ValueError: pass
88 r(ZeroDivisionError)
89 try: x = 1/0
90 except ZeroDivisionError: pass
92 unlink(TESTFN)