]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - third_party/Python/module/unittest2/unittest2/test/test_skipping.py
Vendor import of lldb trunk r256945:
[FreeBSD/FreeBSD.git] / third_party / Python / module / unittest2 / unittest2 / test / test_skipping.py
1 from unittest2.test.support import LoggingResult
2
3 import unittest2
4
5
6 class Test_TestSkipping(unittest2.TestCase):
7
8     def test_skipping(self):
9         class Foo(unittest2.TestCase):
10             def test_skip_me(self):
11                 self.skipTest("skip")
12         events = []
13         result = LoggingResult(events)
14         test = Foo("test_skip_me")
15         test.run(result)
16         self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
17         self.assertEqual(result.skipped, [(test, "skip")])
18
19         # Try letting setUp skip the test now.
20         class Foo(unittest2.TestCase):
21             def setUp(self):
22                 self.skipTest("testing")
23             def test_nothing(self): pass
24         events = []
25         result = LoggingResult(events)
26         test = Foo("test_nothing")
27         test.run(result)
28         self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
29         self.assertEqual(result.skipped, [(test, "testing")])
30         self.assertEqual(result.testsRun, 1)
31
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")
38                 def test_skip(self): 
39                     pass
40
41                 @deco(dont_skip, "testing")
42                 def test_dont_skip(self): 
43                     pass
44             
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])
48             events = []
49             result = LoggingResult(events)
50             suite.run(result)
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())
58         
59     def test_skip_class(self):
60         class Foo(unittest2.TestCase):
61             def test_1(self):
62                 record.append(1)
63         
64         # was originally a class decorator...
65         Foo = unittest2.skip("testing")(Foo)
66         record = []
67         result = unittest2.TestResult()
68         test = Foo("test_1")
69         suite = unittest2.TestSuite([test])
70         suite.run(result)
71         self.assertEqual(result.skipped, [(test, "testing")])
72         self.assertEqual(record, [])
73
74     def test_expected_failure(self):
75         class Foo(unittest2.TestCase):
76             @unittest2.expectedFailure
77             def test_die(self):
78                 self.fail("help me!")
79         events = []
80         result = LoggingResult(events)
81         test = Foo("test_die")
82         test.run(result)
83         self.assertEqual(events,
84                          ['startTest', 'addExpectedFailure', 'stopTest'])
85         self.assertEqual(result.expectedFailures[0][0], test)
86         self.assertTrue(result.wasSuccessful())
87
88     def test_unexpected_success(self):
89         class Foo(unittest2.TestCase):
90             @unittest2.expectedFailure
91             def test_die(self):
92                 pass
93         events = []
94         result = LoggingResult(events)
95         test = Foo("test_die")
96         test.run(result)
97         self.assertEqual(events,
98                          ['startTest', 'addUnexpectedSuccess', 'stopTest'])
99         self.assertFalse(result.failures)
100         self.assertEqual(result.unexpectedSuccesses, [test])
101         self.assertTrue(result.wasSuccessful())
102
103     def test_skip_doesnt_run_setup(self):
104         class Foo(unittest2.TestCase):
105             wasSetUp = False
106             wasTornDown = False
107             def setUp(self):
108                 Foo.wasSetUp = True
109             def tornDown(self):
110                 Foo.wasTornDown = True
111             @unittest2.skip('testing')
112             def test_1(self):
113                 pass
114         
115         result = unittest2.TestResult()
116         test = Foo("test_1")
117         suite = unittest2.TestSuite([test])
118         suite.run(result)
119         self.assertEqual(result.skipped, [(test, "testing")])
120         self.assertFalse(Foo.wasSetUp)
121         self.assertFalse(Foo.wasTornDown)
122     
123     def test_decorated_skip(self):
124         def decorator(func):
125             def inner(*a):
126                 return func(*a)
127             return inner
128         
129         class Foo(unittest2.TestCase):
130             @decorator
131             @unittest2.skip('testing')
132             def test_1(self):
133                 pass
134         
135         result = unittest2.TestResult()
136         test = Foo("test_1")
137         suite = unittest2.TestSuite([test])
138         suite.run(result)
139         self.assertEqual(result.skipped, [(test, "testing")])
140
141
142 if __name__ == '__main__':
143     unittest2.main()