Issue #25651: Merge from 3.5
This commit is contained in:
commit
b3d4e7fe71
|
@ -17,6 +17,7 @@ from .util import (strclass, safe_repr, _count_diff_all_purpose,
|
|||
|
||||
__unittest = True
|
||||
|
||||
_subtest_msg_sentinel = object()
|
||||
|
||||
DIFF_OMITTED = ('\nDiff is %s characters long. '
|
||||
'Set self.maxDiff to None to see it.')
|
||||
|
@ -497,7 +498,7 @@ class TestCase(object):
|
|||
result.addSuccess(test_case)
|
||||
|
||||
@contextlib.contextmanager
|
||||
def subTest(self, msg=None, **params):
|
||||
def subTest(self, msg=_subtest_msg_sentinel, **params):
|
||||
"""Return a context manager that will return the enclosed block
|
||||
of code in a subtest identified by the optional message and
|
||||
keyword parameters. A failure in the subtest marks the test
|
||||
|
@ -1397,7 +1398,7 @@ class _SubTest(TestCase):
|
|||
|
||||
def _subDescription(self):
|
||||
parts = []
|
||||
if self._message:
|
||||
if self._message is not _subtest_msg_sentinel:
|
||||
parts.append("[{}]".format(self._message))
|
||||
if self.params:
|
||||
params_desc = ', '.join(
|
||||
|
|
|
@ -323,6 +323,16 @@ class Test_TestResult(unittest.TestCase):
|
|||
'testGetSubTestDescriptionWithoutDocstringAndParams '
|
||||
'(' + __name__ + '.Test_TestResult) (<subtest>)')
|
||||
|
||||
def testGetSubTestDescriptionForFalsyValues(self):
|
||||
expected = 'testGetSubTestDescriptionForFalsyValues (%s.Test_TestResult) [%s]'
|
||||
result = unittest.TextTestResult(None, True, 1)
|
||||
for arg in [0, None, []]:
|
||||
with self.subTest(arg):
|
||||
self.assertEqual(
|
||||
result.getDescription(self._subtest),
|
||||
expected % (__name__, arg)
|
||||
)
|
||||
|
||||
def testGetNestedSubTestDescriptionWithoutDocstring(self):
|
||||
with self.subTest(foo=1):
|
||||
with self.subTest(bar=2):
|
||||
|
|
Loading…
Reference in New Issue