blob: d874b0e3d10a82dd54f534ac00cb41d2932b1c99 [file] [log] [blame]
Tim Peters1a572962006-03-01 06:19:04 +00001
Tim Peters1a572962006-03-01 06:19:04 +00002import unittest
3
4class ExceptionTestCase(unittest.TestCase):
5 def test_try_except_else_finally(self):
6 hit_except = False
7 hit_else = False
8 hit_finally = False
9
10 try:
Collin Winter3add4d72007-08-29 23:37:32 +000011 raise Exception('nyaa!')
Tim Peters1a572962006-03-01 06:19:04 +000012 except:
13 hit_except = True
14 else:
15 hit_else = True
16 finally:
17 hit_finally = True
18
19 self.assertTrue(hit_except)
20 self.assertTrue(hit_finally)
21 self.assertFalse(hit_else)
22
23 def test_try_except_else_finally_no_exception(self):
24 hit_except = False
25 hit_else = False
26 hit_finally = False
27
28 try:
29 pass
30 except:
31 hit_except = True
32 else:
33 hit_else = True
34 finally:
35 hit_finally = True
36
37 self.assertFalse(hit_except)
38 self.assertTrue(hit_finally)
39 self.assertTrue(hit_else)
40
41 def test_try_except_finally(self):
42 hit_except = False
43 hit_finally = False
44
45 try:
Collin Winter3add4d72007-08-29 23:37:32 +000046 raise Exception('yarr!')
Tim Peters1a572962006-03-01 06:19:04 +000047 except:
48 hit_except = True
49 finally:
50 hit_finally = True
51
52 self.assertTrue(hit_except)
53 self.assertTrue(hit_finally)
54
55 def test_try_except_finally_no_exception(self):
56 hit_except = False
57 hit_finally = False
58
59 try:
60 pass
61 except:
62 hit_except = True
63 finally:
64 hit_finally = True
65
66 self.assertFalse(hit_except)
67 self.assertTrue(hit_finally)
68
69 def test_try_except(self):
70 hit_except = False
71
72 try:
Collin Winter3add4d72007-08-29 23:37:32 +000073 raise Exception('ahoy!')
Tim Peters1a572962006-03-01 06:19:04 +000074 except:
75 hit_except = True
76
77 self.assertTrue(hit_except)
78
79 def test_try_except_no_exception(self):
80 hit_except = False
81
82 try:
83 pass
84 except:
85 hit_except = True
86
87 self.assertFalse(hit_except)
88
89 def test_try_except_else(self):
90 hit_except = False
91 hit_else = False
92
93 try:
Collin Winter3add4d72007-08-29 23:37:32 +000094 raise Exception('foo!')
Tim Peters1a572962006-03-01 06:19:04 +000095 except:
96 hit_except = True
97 else:
98 hit_else = True
99
100 self.assertFalse(hit_else)
101 self.assertTrue(hit_except)
102
103 def test_try_except_else_no_exception(self):
104 hit_except = False
105 hit_else = False
106
107 try:
108 pass
109 except:
110 hit_except = True
111 else:
112 hit_else = True
113
114 self.assertFalse(hit_except)
115 self.assertTrue(hit_else)
116
117 def test_try_finally_no_exception(self):
118 hit_finally = False
119
120 try:
121 pass
122 finally:
123 hit_finally = True
124
125 self.assertTrue(hit_finally)
126
127 def test_nested(self):
128 hit_finally = False
129 hit_inner_except = False
130 hit_inner_finally = False
131
132 try:
133 try:
Collin Winter3add4d72007-08-29 23:37:32 +0000134 raise Exception('inner exception')
Tim Peters1a572962006-03-01 06:19:04 +0000135 except:
136 hit_inner_except = True
137 finally:
138 hit_inner_finally = True
139 finally:
140 hit_finally = True
141
142 self.assertTrue(hit_inner_except)
143 self.assertTrue(hit_inner_finally)
144 self.assertTrue(hit_finally)
145
146 def test_nested_else(self):
147 hit_else = False
148 hit_finally = False
149 hit_except = False
150 hit_inner_except = False
151 hit_inner_else = False
152
153 try:
154 try:
155 pass
156 except:
157 hit_inner_except = True
158 else:
159 hit_inner_else = True
160
Collin Winter3add4d72007-08-29 23:37:32 +0000161 raise Exception('outer exception')
Tim Peters1a572962006-03-01 06:19:04 +0000162 except:
163 hit_except = True
164 else:
165 hit_else = True
166 finally:
167 hit_finally = True
168
169 self.assertFalse(hit_inner_except)
170 self.assertTrue(hit_inner_else)
171 self.assertFalse(hit_else)
172 self.assertTrue(hit_finally)
173 self.assertTrue(hit_except)
174
Tim Peters1a572962006-03-01 06:19:04 +0000175if __name__ == '__main__':
Zachary Ware38c707e2015-04-13 15:00:43 -0500176 unittest.main()