~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Lib/test/test_exception_variations.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
from test.support import run_unittest
 
3
import unittest
 
4
 
 
5
class ExceptionTestCase(unittest.TestCase):
 
6
    def test_try_except_else_finally(self):
 
7
        hit_except = False
 
8
        hit_else = False
 
9
        hit_finally = False
 
10
 
 
11
        try:
 
12
            raise Exception('nyaa!')
 
13
        except:
 
14
            hit_except = True
 
15
        else:
 
16
            hit_else = True
 
17
        finally:
 
18
            hit_finally = True
 
19
 
 
20
        self.assertTrue(hit_except)
 
21
        self.assertTrue(hit_finally)
 
22
        self.assertFalse(hit_else)
 
23
 
 
24
    def test_try_except_else_finally_no_exception(self):
 
25
        hit_except = False
 
26
        hit_else = False
 
27
        hit_finally = False
 
28
 
 
29
        try:
 
30
            pass
 
31
        except:
 
32
            hit_except = True
 
33
        else:
 
34
            hit_else = True
 
35
        finally:
 
36
            hit_finally = True
 
37
 
 
38
        self.assertFalse(hit_except)
 
39
        self.assertTrue(hit_finally)
 
40
        self.assertTrue(hit_else)
 
41
 
 
42
    def test_try_except_finally(self):
 
43
        hit_except = False
 
44
        hit_finally = False
 
45
 
 
46
        try:
 
47
            raise Exception('yarr!')
 
48
        except:
 
49
            hit_except = True
 
50
        finally:
 
51
            hit_finally = True
 
52
 
 
53
        self.assertTrue(hit_except)
 
54
        self.assertTrue(hit_finally)
 
55
 
 
56
    def test_try_except_finally_no_exception(self):
 
57
        hit_except = False
 
58
        hit_finally = False
 
59
 
 
60
        try:
 
61
            pass
 
62
        except:
 
63
            hit_except = True
 
64
        finally:
 
65
            hit_finally = True
 
66
 
 
67
        self.assertFalse(hit_except)
 
68
        self.assertTrue(hit_finally)
 
69
 
 
70
    def test_try_except(self):
 
71
        hit_except = False
 
72
 
 
73
        try:
 
74
            raise Exception('ahoy!')
 
75
        except:
 
76
            hit_except = True
 
77
 
 
78
        self.assertTrue(hit_except)
 
79
 
 
80
    def test_try_except_no_exception(self):
 
81
        hit_except = False
 
82
 
 
83
        try:
 
84
            pass
 
85
        except:
 
86
            hit_except = True
 
87
 
 
88
        self.assertFalse(hit_except)
 
89
 
 
90
    def test_try_except_else(self):
 
91
        hit_except = False
 
92
        hit_else = False
 
93
 
 
94
        try:
 
95
            raise Exception('foo!')
 
96
        except:
 
97
            hit_except = True
 
98
        else:
 
99
            hit_else = True
 
100
 
 
101
        self.assertFalse(hit_else)
 
102
        self.assertTrue(hit_except)
 
103
 
 
104
    def test_try_except_else_no_exception(self):
 
105
        hit_except = False
 
106
        hit_else = False
 
107
 
 
108
        try:
 
109
            pass
 
110
        except:
 
111
            hit_except = True
 
112
        else:
 
113
            hit_else = True
 
114
 
 
115
        self.assertFalse(hit_except)
 
116
        self.assertTrue(hit_else)
 
117
 
 
118
    def test_try_finally_no_exception(self):
 
119
        hit_finally = False
 
120
 
 
121
        try:
 
122
            pass
 
123
        finally:
 
124
            hit_finally = True
 
125
 
 
126
        self.assertTrue(hit_finally)
 
127
 
 
128
    def test_nested(self):
 
129
        hit_finally = False
 
130
        hit_inner_except = False
 
131
        hit_inner_finally = False
 
132
 
 
133
        try:
 
134
            try:
 
135
                raise Exception('inner exception')
 
136
            except:
 
137
                hit_inner_except = True
 
138
            finally:
 
139
                hit_inner_finally = True
 
140
        finally:
 
141
            hit_finally = True
 
142
 
 
143
        self.assertTrue(hit_inner_except)
 
144
        self.assertTrue(hit_inner_finally)
 
145
        self.assertTrue(hit_finally)
 
146
 
 
147
    def test_nested_else(self):
 
148
        hit_else = False
 
149
        hit_finally = False
 
150
        hit_except = False
 
151
        hit_inner_except = False
 
152
        hit_inner_else = False
 
153
 
 
154
        try:
 
155
            try:
 
156
                pass
 
157
            except:
 
158
                hit_inner_except = True
 
159
            else:
 
160
                hit_inner_else = True
 
161
 
 
162
            raise Exception('outer exception')
 
163
        except:
 
164
            hit_except = True
 
165
        else:
 
166
            hit_else = True
 
167
        finally:
 
168
            hit_finally = True
 
169
 
 
170
        self.assertFalse(hit_inner_except)
 
171
        self.assertTrue(hit_inner_else)
 
172
        self.assertFalse(hit_else)
 
173
        self.assertTrue(hit_finally)
 
174
        self.assertTrue(hit_except)
 
175
 
 
176
def test_main():
 
177
    run_unittest(ExceptionTestCase)
 
178
 
 
179
if __name__ == '__main__':
 
180
    test_main()