case as failed but resumes execution at the end of the enclosed
block, allowing further test code to be executed.
"""
- if not self._outcome.result_supports_subtests:
+ if self._outcome is None or not self._outcome.result_supports_subtests:
yield
return
parent = self._subtest
expected = ['a1', 'a2', 'b1']
self.assertEqual(events, expected)
+ def test_subtests_debug(self):
+ # Test debug() with a test that uses subTest() (bpo-34900)
+ events = []
+
+ class Foo(unittest.TestCase):
+ def test_a(self):
+ events.append('test case')
+ with self.subTest():
+ events.append('subtest 1')
+
+ Foo('test_a').debug()
+
+ self.assertEqual(events, ['test case', 'subtest 1'])
+
# "This class attribute gives the exception raised by the test() method.
# If a test framework needs to use a specialized exception, possibly to
# carry additional information, it must subclass this exception in