1 from unittest2.test.support import LoggingResult
6 class Test_TestSkipping(unittest2.TestCase):
8 def test_skipping(self):
9 class Foo(unittest2.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(unittest2.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 = ((unittest2.skipUnless, False, True),
34 (unittest2.skipIf, True, False))
35 for deco, do_skip, dont_skip in op_table:
36 class Foo(unittest2.TestCase):
37 @deco(do_skip, "testing")
41 @deco(dont_skip, "testing")
42 def test_dont_skip(self):
45 test_do_skip = Foo("test_skip")
46 test_dont_skip = Foo("test_dont_skip")
47 suite = unittest2.TestSuite([test_do_skip, test_dont_skip])
49 result = LoggingResult(events)
51 self.assertEqual(len(result.skipped), 1)
52 expected = ['startTest', 'addSkip', 'stopTest',
53 'startTest', 'addSuccess', 'stopTest']
54 self.assertEqual(events, expected)
55 self.assertEqual(result.testsRun, 2)
56 self.assertEqual(result.skipped, [(test_do_skip, "testing")])
57 self.assertTrue(result.wasSuccessful())
59 def test_skip_class(self):
60 class Foo(unittest2.TestCase):
64 # was originally a class decorator...
65 Foo = unittest2.skip("testing")(Foo)
67 result = unittest2.TestResult()
69 suite = unittest2.TestSuite([test])
71 self.assertEqual(result.skipped, [(test, "testing")])
72 self.assertEqual(record, [])
74 def test_expected_failure(self):
75 class Foo(unittest2.TestCase):
76 @unittest2.expectedFailure
80 result = LoggingResult(events)
81 test = Foo("test_die")
83 self.assertEqual(events,
84 ['startTest', 'addExpectedFailure', 'stopTest'])
85 self.assertEqual(result.expectedFailures[0][0], test)
86 self.assertTrue(result.wasSuccessful())
88 def test_unexpected_success(self):
89 class Foo(unittest2.TestCase):
90 @unittest2.expectedFailure
94 result = LoggingResult(events)
95 test = Foo("test_die")
97 self.assertEqual(events,
98 ['startTest', 'addUnexpectedSuccess', 'stopTest'])
99 self.assertFalse(result.failures)
100 self.assertEqual(result.unexpectedSuccesses, [test])
101 self.assertTrue(result.wasSuccessful())
103 def test_skip_doesnt_run_setup(self):
104 class Foo(unittest2.TestCase):
110 Foo.wasTornDown = True
111 @unittest2.skip('testing')
115 result = unittest2.TestResult()
117 suite = unittest2.TestSuite([test])
119 self.assertEqual(result.skipped, [(test, "testing")])
120 self.assertFalse(Foo.wasSetUp)
121 self.assertFalse(Foo.wasTornDown)
123 def test_decorated_skip(self):
129 class Foo(unittest2.TestCase):
131 @unittest2.skip('testing')
135 result = unittest2.TestResult()
137 suite = unittest2.TestSuite([test])
139 self.assertEqual(result.skipped, [(test, "testing")])
142 if __name__ == '__main__':