summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-02-04 16:00:56 (GMT)
committerGitHub <noreply@github.com>2024-02-04 16:00:56 (GMT)
commit0a737639dcd3b7181250f5d56694b192eaddeef0 (patch)
tree0936874e123ae4d0580bc2a81bb85d20dfbaa49a
parentd8a787258dbbc49b0c17ce62756b72d4a67aba4d (diff)
downloadcpython-0a737639dcd3b7181250f5d56694b192eaddeef0.zip
cpython-0a737639dcd3b7181250f5d56694b192eaddeef0.tar.gz
cpython-0a737639dcd3b7181250f5d56694b192eaddeef0.tar.bz2
[3.12] gh-113267: Revert "gh-106584: Fix exit code for unittest in Python 3.12 (GH-106588)" (GH-114470) (GH-114994)
This reverts commit 8fc071345b50dd3de61ebeeaa287ccef21d061b2. (cherry picked from commit ecabff98c41453f15ecd26ac255d531b571b9bc1) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
-rw-r--r--Lib/test/test_unittest/test_discovery.py2
-rw-r--r--Lib/test/test_unittest/test_skipping.py12
-rw-r--r--Lib/unittest/case.py4
-rw-r--r--Lib/unittest/result.py10
-rw-r--r--Misc/NEWS.d/next/Library/2024-01-23-11-04-21.gh-issue-113267.xe_Pxe.rst2
5 files changed, 14 insertions, 16 deletions
diff --git a/Lib/test/test_unittest/test_discovery.py b/Lib/test/test_unittest/test_discovery.py
index dcb72d7..004898e 100644
--- a/Lib/test/test_unittest/test_discovery.py
+++ b/Lib/test/test_unittest/test_discovery.py
@@ -571,7 +571,7 @@ class TestDiscovery(unittest.TestCase):
result = unittest.TestResult()
suite.run(result)
self.assertEqual(len(result.skipped), 1)
- self.assertEqual(result.testsRun, 0)
+ self.assertEqual(result.testsRun, 1)
self.assertEqual(import_calls, ['my_package'])
# Check picklability
diff --git a/Lib/test/test_unittest/test_skipping.py b/Lib/test/test_unittest/test_skipping.py
index 1a6af06..f146dca 100644
--- a/Lib/test/test_unittest/test_skipping.py
+++ b/Lib/test/test_unittest/test_skipping.py
@@ -103,16 +103,16 @@ class Test_TestSkipping(unittest.TestCase):
result = LoggingResult(events)
self.assertIs(suite.run(result), result)
self.assertEqual(len(result.skipped), 1)
- expected = ['addSkip', 'stopTest', 'startTest',
- 'addSuccess', 'stopTest']
+ expected = ['startTest', 'addSkip', 'stopTest',
+ 'startTest', 'addSuccess', 'stopTest']
self.assertEqual(events, expected)
- self.assertEqual(result.testsRun, 1)
+ self.assertEqual(result.testsRun, 2)
self.assertEqual(result.skipped, [(test_do_skip, "testing")])
self.assertTrue(result.wasSuccessful())
events = []
result = test_do_skip.run()
- self.assertEqual(events, ['startTestRun', 'addSkip',
+ self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',
'stopTest', 'stopTestRun'])
self.assertEqual(result.skipped, [(test_do_skip, "testing")])
@@ -135,13 +135,13 @@ class Test_TestSkipping(unittest.TestCase):
test = Foo("test_1")
suite = unittest.TestSuite([test])
self.assertIs(suite.run(result), result)
- self.assertEqual(events, ['addSkip', 'stopTest'])
+ self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
self.assertEqual(result.skipped, [(test, "testing")])
self.assertEqual(record, [])
events = []
result = test.run()
- self.assertEqual(events, ['startTestRun', 'addSkip',
+ self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',
'stopTest', 'stopTestRun'])
self.assertEqual(result.skipped, [(test, "testing")])
self.assertEqual(record, [])
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index 8115574..001b640 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -606,6 +606,7 @@ class TestCase(object):
else:
stopTestRun = None
+ result.startTest(self)
try:
testMethod = getattr(self, self._testMethodName)
if (getattr(self.__class__, "__unittest_skip__", False) or
@@ -616,9 +617,6 @@ class TestCase(object):
_addSkip(result, self, skip_why)
return result
- # Increase the number of tests only if it hasn't been skipped
- result.startTest(self)
-
expecting_failure = (
getattr(self, "__unittest_expecting_failure__", False) or
getattr(testMethod, "__unittest_expecting_failure__", False)
diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py
index 9e56f65..3ace0a5 100644
--- a/Lib/unittest/result.py
+++ b/Lib/unittest/result.py
@@ -97,12 +97,10 @@ class TestResult(object):
sys.stdout = self._original_stdout
sys.stderr = self._original_stderr
- if self._stdout_buffer is not None:
- self._stdout_buffer.seek(0)
- self._stdout_buffer.truncate()
- if self._stderr_buffer is not None:
- self._stderr_buffer.seek(0)
- self._stderr_buffer.truncate()
+ self._stdout_buffer.seek(0)
+ self._stdout_buffer.truncate()
+ self._stderr_buffer.seek(0)
+ self._stderr_buffer.truncate()
def stopTestRun(self):
"""Called once after all tests are executed.
diff --git a/Misc/NEWS.d/next/Library/2024-01-23-11-04-21.gh-issue-113267.xe_Pxe.rst b/Misc/NEWS.d/next/Library/2024-01-23-11-04-21.gh-issue-113267.xe_Pxe.rst
new file mode 100644
index 0000000..ad8aaf9
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-01-23-11-04-21.gh-issue-113267.xe_Pxe.rst
@@ -0,0 +1,2 @@
+Revert changes in :gh:`106584` which made calls of ``TestResult`` methods
+``startTest()`` and ``stopTest()`` unbalanced.