3
from .support import LoggingResult
6
class Test_TestSkipping(unittest.TestCase):
8
def test_skipping(self):
9
class Foo(unittest.TestCase):
10
def test_skip_me(self):
13
result = LoggingResult(events)
14
test = Foo("test_skip_me")
16
self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
17
self.assertEqual(result.skipped, [(test, "skip")])
19
# Try letting setUp skip the test now.
20
class Foo(unittest.TestCase):
22
self.skipTest("testing")
23
def test_nothing(self): pass
25
result = LoggingResult(events)
26
test = Foo("test_nothing")
28
self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
29
self.assertEqual(result.skipped, [(test, "testing")])
30
self.assertEqual(result.testsRun, 1)
32
def test_skipping_decorators(self):
33
op_table = ((unittest.skipUnless, False, True),
34
(unittest.skipIf, True, False))
35
for deco, do_skip, dont_skip in op_table:
36
class Foo(unittest.TestCase):
37
@deco(do_skip, "testing")
38
def test_skip(self): pass
40
@deco(dont_skip, "testing")
41
def test_dont_skip(self): pass
42
test_do_skip = Foo("test_skip")
43
test_dont_skip = Foo("test_dont_skip")
44
suite = unittest.TestSuite([test_do_skip, test_dont_skip])
46
result = LoggingResult(events)
48
self.assertEqual(len(result.skipped), 1)
49
expected = ['startTest', 'addSkip', 'stopTest',
50
'startTest', 'addSuccess', 'stopTest']
51
self.assertEqual(events, expected)
52
self.assertEqual(result.testsRun, 2)
53
self.assertEqual(result.skipped, [(test_do_skip, "testing")])
54
self.assertTrue(result.wasSuccessful())
56
def test_skip_class(self):
57
@unittest.skip("testing")
58
class Foo(unittest.TestCase):
62
result = unittest.TestResult()
64
suite = unittest.TestSuite([test])
66
self.assertEqual(result.skipped, [(test, "testing")])
67
self.assertEqual(record, [])
69
def test_expected_failure(self):
70
class Foo(unittest.TestCase):
71
@unittest.expectedFailure
75
result = LoggingResult(events)
76
test = Foo("test_die")
78
self.assertEqual(events,
79
['startTest', 'addExpectedFailure', 'stopTest'])
80
self.assertEqual(result.expectedFailures[0][0], test)
81
self.assertTrue(result.wasSuccessful())
83
def test_unexpected_success(self):
84
class Foo(unittest.TestCase):
85
@unittest.expectedFailure
89
result = LoggingResult(events)
90
test = Foo("test_die")
92
self.assertEqual(events,
93
['startTest', 'addUnexpectedSuccess', 'stopTest'])
94
self.assertFalse(result.failures)
95
self.assertEqual(result.unexpectedSuccesses, [test])
96
self.assertTrue(result.wasSuccessful())
98
def test_skip_doesnt_run_setup(self):
99
class Foo(unittest.TestCase):
105
Foo.wasTornDown = True
106
@unittest.skip('testing')
110
result = unittest.TestResult()
112
suite = unittest.TestSuite([test])
114
self.assertEqual(result.skipped, [(test, "testing")])
115
self.assertFalse(Foo.wasSetUp)
116
self.assertFalse(Foo.wasTornDown)
118
def test_decorated_skip(self):
124
class Foo(unittest.TestCase):
126
@unittest.skip('testing')
130
result = unittest.TestResult()
132
suite = unittest.TestSuite([test])
134
self.assertEqual(result.skipped, [(test, "testing")])
137
if __name__ == '__main__':