]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-34900: Make TestCase.debug() work with subtests (GH-9707)
authorBruno Oliveira <nicoddemus@gmail.com>
Fri, 12 Oct 2018 10:35:55 +0000 (07:35 -0300)
committerBerker Peksag <berker.peksag@gmail.com>
Fri, 12 Oct 2018 10:35:55 +0000 (13:35 +0300)
Lib/unittest/case.py
Lib/unittest/test/test_case.py
Misc/NEWS.d/next/Library/2018-10-05-05-55-53.bpo-34900.8RNiFu.rst [new file with mode: 0644]

index 1faa6b641f2d75502f220ecfdf7a9bc361c255b1..2579c30474b53664f79ef9e8e627cd6416427ef1 100644 (file)
@@ -514,7 +514,7 @@ class TestCase(object):
         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
index baabddd06f41a415f4c2785b080bc079013da7c4..687fe5b65f109e719bf4205c2886bd7f768bafd8 100644 (file)
@@ -425,6 +425,20 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing):
         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
diff --git a/Misc/NEWS.d/next/Library/2018-10-05-05-55-53.bpo-34900.8RNiFu.rst b/Misc/NEWS.d/next/Library/2018-10-05-05-55-53.bpo-34900.8RNiFu.rst
new file mode 100644 (file)
index 0000000..20e3a0e
--- /dev/null
@@ -0,0 +1,2 @@
+Fixed :meth:`unittest.TestCase.debug` when used to call test methods with
+subtests.  Patch by Bruno Oliveira.