Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3882317

Browse files
EliseevEgorsunmy2019sobolevn
authored andcommitted
gh-106584: Fix exit code for unittest in Python 3.12 (#106588)
Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
1 parent1f67eed commit3882317

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

‎Lib/test/test_unittest/test_discovery.py‎

Lines changed: 1 addition & 1 deletion
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,1)
574+
self.assertEqual(result.testsRun,0)
575575
self.assertEqual(import_calls, ['my_package'])
576576

577577
# Check picklability

‎Lib/test/test_unittest/test_skipping.py‎

Lines changed: 6 additions & 6 deletions
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= ['startTest','addSkip','stopTest',
107-
'startTest','addSuccess','stopTest']
106+
expected= ['addSkip','stopTest','startTest',
107+
'addSuccess','stopTest']
108108
self.assertEqual(events,expected)
109-
self.assertEqual(result.testsRun,2)
109+
self.assertEqual(result.testsRun,1)
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','startTest','addSkip',
115+
self.assertEqual(events, ['startTestRun','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, ['startTest','addSkip','stopTest'])
138+
self.assertEqual(events, ['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','startTest','addSkip',
144+
self.assertEqual(events, ['startTestRun','addSkip',
145145
'stopTest','stopTestRun'])
146146
self.assertEqual(result.skipped, [(test,"testing")])
147147
self.assertEqual(record, [])

‎Lib/unittest/case.py‎

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

609-
result.startTest(self)
610609
try:
611610
testMethod=getattr(self,self._testMethodName)
612611
if (getattr(self.__class__,"__unittest_skip__",False)or
@@ -617,6 +616,9 @@ def run(self, result=None):
617616
_addSkip(result,self,skip_why)
618617
returnresult
619618

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

‎Lib/unittest/result.py‎

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

9898
sys.stdout=self._original_stdout
9999
sys.stderr=self._original_stderr
100-
self._stdout_buffer.seek(0)
101-
self._stdout_buffer.truncate()
102-
self._stderr_buffer.seek(0)
103-
self._stderr_buffer.truncate()
100+
ifself._stdout_bufferisnotNone:
101+
self._stdout_buffer.seek(0)
102+
self._stdout_buffer.truncate()
103+
ifself._stderr_bufferisnotNone:
104+
self._stderr_buffer.seek(0)
105+
self._stderr_buffer.truncate()
104106

105107
defstopTestRun(self):
106108
"""Called once after all tests are executed.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix exit code for ``unittest`` if all tests are skipped.
2+
Patch by Egor Eliseev.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp