@@ -161,6 +161,58 @@ class Foo(Mixin, unittest.TestCase):
161
161
self .assertEqual (result .skipped , [(test , "testing" )])
162
162
self .assertEqual (record , [])
163
163
164
+ def test_skip_in_setup (self ):
165
+ class Foo (unittest .TestCase ):
166
+ def setUp (self ):
167
+ self .skipTest ("skip" )
168
+ def test_skip_me (self ):
169
+ self .fail ("shouldn't come here" )
170
+ events = []
171
+ result = LoggingResult (events )
172
+ test = Foo ("test_skip_me" )
173
+ self .assertIs (test .run (result ), result )
174
+ self .assertEqual (events , ['startTest' , 'addSkip' , 'stopTest' ])
175
+ self .assertEqual (result .skipped , [(test , "skip" )])
176
+
177
+ def test_skip_in_cleanup (self ):
178
+ class Foo (unittest .TestCase ):
179
+ def test_skip_me (self ):
180
+ pass
181
+ def tearDown (self ):
182
+ self .skipTest ("skip" )
183
+ events = []
184
+ result = LoggingResult (events )
185
+ test = Foo ("test_skip_me" )
186
+ self .assertIs (test .run (result ), result )
187
+ self .assertEqual (events , ['startTest' , 'addSkip' , 'stopTest' ])
188
+ self .assertEqual (result .skipped , [(test , "skip" )])
189
+
190
+ def test_failure_and_skip_in_cleanup (self ):
191
+ class Foo (unittest .TestCase ):
192
+ def test_skip_me (self ):
193
+ self .fail ("fail" )
194
+ def tearDown (self ):
195
+ self .skipTest ("skip" )
196
+ events = []
197
+ result = LoggingResult (events )
198
+ test = Foo ("test_skip_me" )
199
+ self .assertIs (test .run (result ), result )
200
+ self .assertEqual (events , ['startTest' , 'addSkip' , 'addFailure' , 'stopTest' ])
201
+ self .assertEqual (result .skipped , [(test , "skip" )])
202
+
203
+ def test_skipping_and_fail_in_cleanup (self ):
204
+ class Foo (unittest .TestCase ):
205
+ def test_skip_me (self ):
206
+ self .skipTest ("skip" )
207
+ def tearDown (self ):
208
+ self .fail ("fail" )
209
+ events = []
210
+ result = LoggingResult (events )
211
+ test = Foo ("test_skip_me" )
212
+ self .assertIs (test .run (result ), result )
213
+ self .assertEqual (events , ['startTest' , 'addSkip' , 'addFailure' , 'stopTest' ])
214
+ self .assertEqual (result .skipped , [(test , "skip" )])
215
+
164
216
def test_expected_failure (self ):
165
217
class Foo (unittest .TestCase ):
166
218
@unittest .expectedFailure
@@ -172,7 +224,9 @@ def test_die(self):
172
224
self .assertIs (test .run (result ), result )
173
225
self .assertEqual (events ,
174
226
['startTest' , 'addExpectedFailure' , 'stopTest' ])
227
+ self .assertFalse (result .failures )
175
228
self .assertEqual (result .expectedFailures [0 ][0 ], test )
229
+ self .assertFalse (result .unexpectedSuccesses )
176
230
self .assertTrue (result .wasSuccessful ())
177
231
178
232
def test_expected_failure_with_wrapped_class (self ):
@@ -187,7 +241,9 @@ def test_1(self):
187
241
self .assertIs (test .run (result ), result )
188
242
self .assertEqual (events ,
189
243
['startTest' , 'addExpectedFailure' , 'stopTest' ])
244
+ self .assertFalse (result .failures )
190
245
self .assertEqual (result .expectedFailures [0 ][0 ], test )
246
+ self .assertFalse (result .unexpectedSuccesses )
191
247
self .assertTrue (result .wasSuccessful ())
192
248
193
249
def test_expected_failure_with_wrapped_subclass (self ):
@@ -205,7 +261,9 @@ class Bar(Foo):
205
261
self .assertIs (test .run (result ), result )
206
262
self .assertEqual (events ,
207
263
['startTest' , 'addExpectedFailure' , 'stopTest' ])
264
+ self .assertFalse (result .failures )
208
265
self .assertEqual (result .expectedFailures [0 ][0 ], test )
266
+ self .assertFalse (result .unexpectedSuccesses )
209
267
self .assertTrue (result .wasSuccessful ())
210
268
211
269
def test_expected_failure_subtests (self ):
@@ -229,8 +287,48 @@ def test_die(self):
229
287
self .assertEqual (events ,
230
288
['startTest' , 'addSubTestSuccess' ,
231
289
'addExpectedFailure' , 'stopTest' ])
290
+ self .assertFalse (result .failures )
232
291
self .assertEqual (len (result .expectedFailures ), 1 )
233
292
self .assertIs (result .expectedFailures [0 ][0 ], test )
293
+ self .assertFalse (result .unexpectedSuccesses )
294
+ self .assertTrue (result .wasSuccessful ())
295
+
296
+ def test_expected_failure_and_fail_in_cleanup (self ):
297
+ class Foo (unittest .TestCase ):
298
+ @unittest .expectedFailure
299
+ def test_die (self ):
300
+ self .fail ("help me!" )
301
+ def tearDown (self ):
302
+ self .fail ("bad tearDown" )
303
+ events = []
304
+ result = LoggingResult (events )
305
+ test = Foo ("test_die" )
306
+ self .assertIs (test .run (result ), result )
307
+ self .assertEqual (events ,
308
+ ['startTest' , 'addFailure' , 'stopTest' ])
309
+ self .assertEqual (len (result .failures ), 1 )
310
+ self .assertIn ('AssertionError: bad tearDown' , result .failures [0 ][1 ])
311
+ self .assertFalse (result .expectedFailures )
312
+ self .assertFalse (result .unexpectedSuccesses )
313
+ self .assertFalse (result .wasSuccessful ())
314
+
315
+ def test_expected_failure_and_skip_in_cleanup (self ):
316
+ class Foo (unittest .TestCase ):
317
+ @unittest .expectedFailure
318
+ def test_die (self ):
319
+ self .fail ("help me!" )
320
+ def tearDown (self ):
321
+ self .skipTest ("skip" )
322
+ events = []
323
+ result = LoggingResult (events )
324
+ test = Foo ("test_die" )
325
+ self .assertIs (test .run (result ), result )
326
+ self .assertEqual (events ,
327
+ ['startTest' , 'addSkip' , 'stopTest' ])
328
+ self .assertFalse (result .failures )
329
+ self .assertFalse (result .expectedFailures )
330
+ self .assertFalse (result .unexpectedSuccesses )
331
+ self .assertEqual (result .skipped , [(test , "skip" )])
234
332
self .assertTrue (result .wasSuccessful ())
235
333
236
334
def test_unexpected_success (self ):
@@ -245,6 +343,7 @@ def test_die(self):
245
343
self .assertEqual (events ,
246
344
['startTest' , 'addUnexpectedSuccess' , 'stopTest' ])
247
345
self .assertFalse (result .failures )
346
+ self .assertFalse (result .expectedFailures )
248
347
self .assertEqual (result .unexpectedSuccesses , [test ])
249
348
self .assertFalse (result .wasSuccessful ())
250
349
@@ -269,9 +368,48 @@ def test_die(self):
269
368
'addSubTestSuccess' , 'addSubTestSuccess' ,
270
369
'addUnexpectedSuccess' , 'stopTest' ])
271
370
self .assertFalse (result .failures )
371
+ self .assertFalse (result .expectedFailures )
272
372
self .assertEqual (result .unexpectedSuccesses , [test ])
273
373
self .assertFalse (result .wasSuccessful ())
274
374
375
+ def test_unexpected_success_and_fail_in_cleanup (self ):
376
+ class Foo (unittest .TestCase ):
377
+ @unittest .expectedFailure
378
+ def test_die (self ):
379
+ pass
380
+ def tearDown (self ):
381
+ self .fail ("bad tearDown" )
382
+ events = []
383
+ result = LoggingResult (events )
384
+ test = Foo ("test_die" )
385
+ self .assertIs (test .run (result ), result )
386
+ self .assertEqual (events ,
387
+ ['startTest' , 'addFailure' , 'stopTest' ])
388
+ self .assertEqual (len (result .failures ), 1 )
389
+ self .assertIn ('AssertionError: bad tearDown' , result .failures [0 ][1 ])
390
+ self .assertFalse (result .expectedFailures )
391
+ self .assertFalse (result .unexpectedSuccesses )
392
+ self .assertFalse (result .wasSuccessful ())
393
+
394
+ def test_unexpected_success_and_skip_in_cleanup (self ):
395
+ class Foo (unittest .TestCase ):
396
+ @unittest .expectedFailure
397
+ def test_die (self ):
398
+ pass
399
+ def tearDown (self ):
400
+ self .skipTest ("skip" )
401
+ events = []
402
+ result = LoggingResult (events )
403
+ test = Foo ("test_die" )
404
+ self .assertIs (test .run (result ), result )
405
+ self .assertEqual (events ,
406
+ ['startTest' , 'addSkip' , 'stopTest' ])
407
+ self .assertFalse (result .failures )
408
+ self .assertFalse (result .expectedFailures )
409
+ self .assertFalse (result .unexpectedSuccesses )
410
+ self .assertEqual (result .skipped , [(test , "skip" )])
411
+ self .assertTrue (result .wasSuccessful ())
412
+
275
413
def test_skip_doesnt_run_setup (self ):
276
414
class Foo (unittest .TestCase ):
277
415
wasSetUp = False
0 commit comments