Skip to content

Commit b79c37f

Browse files
serhiy-storchakamiss-islington
authored andcommitted
pythongh-113267: Revert "pythongh-106584: Fix exit code for unittest in Python 3.12 (pythonGH-106588)" (pythonGH-114470)
This reverts commit 8fc0713. (cherry picked from commit ecabff9) Co-authored-by: Serhiy Storchaka <[email protected]>
1 parent d8a7872 commit b79c37f

File tree

5 files changed

+14
-16
lines changed

5 files changed

+14
-16
lines changed

Lib/test/test_unittest/test_discovery.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ def _get_module_from_name(name):
571571
result = unittest.TestResult()
572572
suite.run(result)
573573
self.assertEqual(len(result.skipped), 1)
574-
self.assertEqual(result.testsRun, 0)
574+
self.assertEqual(result.testsRun, 1)
575575
self.assertEqual(import_calls, ['my_package'])
576576

577577
# Check picklability

Lib/test/test_unittest/test_skipping.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -103,16 +103,16 @@ def test_dont_skip(self): pass
103103
result = LoggingResult(events)
104104
self.assertIs(suite.run(result), result)
105105
self.assertEqual(len(result.skipped), 1)
106-
expected = ['addSkip', 'stopTest', 'startTest',
107-
'addSuccess', 'stopTest']
106+
expected = ['startTest', 'addSkip', 'stopTest',
107+
'startTest', 'addSuccess', 'stopTest']
108108
self.assertEqual(events, expected)
109-
self.assertEqual(result.testsRun, 1)
109+
self.assertEqual(result.testsRun, 2)
110110
self.assertEqual(result.skipped, [(test_do_skip, "testing")])
111111
self.assertTrue(result.wasSuccessful())
112112

113113
events = []
114114
result = test_do_skip.run()
115-
self.assertEqual(events, ['startTestRun', 'addSkip',
115+
self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',
116116
'stopTest', 'stopTestRun'])
117117
self.assertEqual(result.skipped, [(test_do_skip, "testing")])
118118

@@ -135,13 +135,13 @@ def test_1(self):
135135
test = Foo("test_1")
136136
suite = unittest.TestSuite([test])
137137
self.assertIs(suite.run(result), result)
138-
self.assertEqual(events, ['addSkip', 'stopTest'])
138+
self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
139139
self.assertEqual(result.skipped, [(test, "testing")])
140140
self.assertEqual(record, [])
141141

142142
events = []
143143
result = test.run()
144-
self.assertEqual(events, ['startTestRun', 'addSkip',
144+
self.assertEqual(events, ['startTestRun', 'startTest', 'addSkip',
145145
'stopTest', 'stopTestRun'])
146146
self.assertEqual(result.skipped, [(test, "testing")])
147147
self.assertEqual(record, [])

Lib/unittest/case.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,7 @@ def run(self, result=None):
606606
else:
607607
stopTestRun = None
608608

609+
result.startTest(self)
609610
try:
610611
testMethod = getattr(self, self._testMethodName)
611612
if (getattr(self.__class__, "__unittest_skip__", False) or
@@ -616,9 +617,6 @@ def run(self, result=None):
616617
_addSkip(result, self, skip_why)
617618
return result
618619

619-
# Increase the number of tests only if it hasn't been skipped
620-
result.startTest(self)
621-
622620
expecting_failure = (
623621
getattr(self, "__unittest_expecting_failure__", False) or
624622
getattr(testMethod, "__unittest_expecting_failure__", False)

Lib/unittest/result.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,10 @@ def _restoreStdout(self):
9797

9898
sys.stdout = self._original_stdout
9999
sys.stderr = self._original_stderr
100-
if self._stdout_buffer is not None:
101-
self._stdout_buffer.seek(0)
102-
self._stdout_buffer.truncate()
103-
if self._stderr_buffer is not None:
104-
self._stderr_buffer.seek(0)
105-
self._stderr_buffer.truncate()
100+
self._stdout_buffer.seek(0)
101+
self._stdout_buffer.truncate()
102+
self._stderr_buffer.seek(0)
103+
self._stderr_buffer.truncate()
106104

107105
def stopTestRun(self):
108106
"""Called once after all tests are executed.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Revert changes in :gh:`106584` which made calls of ``TestResult`` methods
2+
``startTest()`` and ``stopTest()`` unbalanced.

0 commit comments

Comments
 (0)