diff options
author | Robert Collins <rbtcollins@hp.com> | 2015-08-27 22:35:14 (GMT) |
---|---|---|
committer | Robert Collins <rbtcollins@hp.com> | 2015-08-27 22:35:14 (GMT) |
commit | 079fc7faff3cee1c68aee3ce0ca2c4ee18b72aab (patch) | |
tree | b783d684fd15a3cf643244321fe14b1978b704aa /Lib/unittest/test | |
parent | dcc47c6064cfa7b44a13853f14e4819185c8f2a2 (diff) | |
parent | ed599b7c84ee216866f4f8a69b5f25dbc5cb4618 (diff) | |
download | cpython-079fc7faff3cee1c68aee3ce0ca2c4ee18b72aab.zip cpython-079fc7faff3cee1c68aee3ce0ca2c4ee18b72aab.tar.gz cpython-079fc7faff3cee1c68aee3ce0ca2c4ee18b72aab.tar.bz2 |
Issue #21112: Fix regression in unittest.expectedFailure on subclasses.
Patch from Berker Peksag.
Diffstat (limited to 'Lib/unittest/test')
-rw-r--r-- | Lib/unittest/test/test_skipping.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Lib/unittest/test/test_skipping.py b/Lib/unittest/test/test_skipping.py index 807510f..71f7b70 100644 --- a/Lib/unittest/test/test_skipping.py +++ b/Lib/unittest/test/test_skipping.py @@ -120,6 +120,39 @@ class Test_TestSkipping(unittest.TestCase): self.assertEqual(result.expectedFailures[0][0], test) self.assertTrue(result.wasSuccessful()) + def test_expected_failure_with_wrapped_class(self): + @unittest.expectedFailure + class Foo(unittest.TestCase): + def test_1(self): + self.assertTrue(False) + + events = [] + result = LoggingResult(events) + test = Foo("test_1") + test.run(result) + self.assertEqual(events, + ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertEqual(result.expectedFailures[0][0], test) + self.assertTrue(result.wasSuccessful()) + + def test_expected_failure_with_wrapped_subclass(self): + class Foo(unittest.TestCase): + def test_1(self): + self.assertTrue(False) + + @unittest.expectedFailure + class Bar(Foo): + pass + + events = [] + result = LoggingResult(events) + test = Bar("test_1") + test.run(result) + self.assertEqual(events, + ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertEqual(result.expectedFailures[0][0], test) + self.assertTrue(result.wasSuccessful()) + def test_expected_failure_subtests(self): # A failure in any subtest counts as the expected failure of the # whole test. |