PageRenderTime 29ms CodeModel.GetById 16ms app.highlight 10ms RepoModel.GetById 1ms app.codeStats 0ms

/Lib/test/test_exception_variations.py

http://unladen-swallow.googlecode.com/
Python | 180 lines | 143 code | 37 blank | 0 comment | 1 complexity | 084c871ffd224d4b73e337edfd7bc70c MD5 | raw file
  1
  2from test.test_support import run_unittest
  3import unittest
  4
  5class 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
176def test_main():
177    run_unittest(ExceptionTestCase)
178
179if __name__ == '__main__':
180    test_main()