bpo-34596: Fallback to a default reason when @unittest.skip is uncalled (#9082)

* bpo-34596: Fallback to a default reason when @unittest.skip is uncalled

* Change default reason to empty string

* Fix rst formatting of NEWS entry
This commit is contained in:
Naitree Zhu 2019-09-09 22:06:48 +08:00 committed by Michael Foord
parent 264e034f99
commit d5fd75c53f
3 changed files with 18 additions and 0 deletions

View File

@ -10,6 +10,7 @@ import warnings
import collections
import contextlib
import traceback
import types
from . import result
from .util import (strclass, safe_repr, _count_diff_all_purpose,
@ -122,6 +123,10 @@ def skip(reason):
test_item.__unittest_skip__ = True
test_item.__unittest_skip_why__ = reason
return test_item
if isinstance(reason, types.FunctionType):
test_item = reason
reason = ''
return decorator(test_item)
return decorator
def skipIf(condition, reason):

View File

@ -255,6 +255,17 @@ class Test_TestSkipping(unittest.TestCase):
suite.run(result)
self.assertEqual(result.skipped, [(test, "testing")])
def test_skip_without_reason(self):
class Foo(unittest.TestCase):
@unittest.skip
def test_1(self):
pass
result = unittest.TestResult()
test = Foo("test_1")
suite = unittest.TestSuite([test])
suite.run(result)
self.assertEqual(result.skipped, [(test, "")])
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,2 @@
Fallback to a default reason when :func:`unittest.skip` is uncalled. Patch by
Naitree Zhu.