mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
Support for old TestResult object (unittest) with warnings when using unsupported features.
This commit is contained in:
parent
4b81bc7fe6
commit
ae3db0a12b
3 changed files with 77 additions and 8 deletions
|
@ -249,6 +249,15 @@ class TestCase(object):
|
|||
return "<%s testMethod=%s>" % \
|
||||
(strclass(self.__class__), self._testMethodName)
|
||||
|
||||
def _addSkip(self, result, reason):
|
||||
addSkip = getattr(result, 'addSkip', None)
|
||||
if addSkip is not None:
|
||||
addSkip(self, reason)
|
||||
else:
|
||||
warnings.warn("TestResult has no addSkip method, skips not reported",
|
||||
RuntimeWarning, 2)
|
||||
result.addSuccess(self)
|
||||
|
||||
def run(self, result=None):
|
||||
orig_result = result
|
||||
if result is None:
|
||||
|
@ -262,7 +271,7 @@ class TestCase(object):
|
|||
if getattr(self.__class__, "__unittest_skip__", False):
|
||||
# If the whole class was skipped.
|
||||
try:
|
||||
result.addSkip(self, self.__class__.__unittest_skip_why__)
|
||||
self._addSkip(result, self.__class__.__unittest_skip_why__)
|
||||
finally:
|
||||
result.stopTest(self)
|
||||
return
|
||||
|
@ -272,7 +281,7 @@ class TestCase(object):
|
|||
try:
|
||||
self.setUp()
|
||||
except SkipTest as e:
|
||||
result.addSkip(self, str(e))
|
||||
self._addSkip(result, str(e))
|
||||
except Exception:
|
||||
result.addError(self, sys.exc_info())
|
||||
else:
|
||||
|
@ -281,11 +290,23 @@ class TestCase(object):
|
|||
except self.failureException:
|
||||
result.addFailure(self, sys.exc_info())
|
||||
except _ExpectedFailure as e:
|
||||
result.addExpectedFailure(self, e.exc_info)
|
||||
addExpectedFailure = getattr(result, 'addExpectedFailure', None)
|
||||
if addExpectedFailure is not None:
|
||||
addExpectedFailure(self, e.exc_info)
|
||||
else:
|
||||
warnings.warn("TestResult has no addExpectedFailure method, reporting as passes",
|
||||
RuntimeWarning)
|
||||
result.addSuccess(self)
|
||||
except _UnexpectedSuccess:
|
||||
result.addUnexpectedSuccess(self)
|
||||
addUnexpectedSuccess = getattr(result, 'addUnexpectedSuccess', None)
|
||||
if addUnexpectedSuccess is not None:
|
||||
addUnexpectedSuccess(self)
|
||||
else:
|
||||
warnings.warn("TestResult has no addUnexpectedSuccess method, reporting as failures",
|
||||
RuntimeWarning)
|
||||
result.addFailure(self, sys.exc_info())
|
||||
except SkipTest as e:
|
||||
result.addSkip(self, str(e))
|
||||
self._addSkip(result, str(e))
|
||||
except Exception:
|
||||
result.addError(self, sys.exc_info())
|
||||
else:
|
||||
|
|
|
@ -107,6 +107,6 @@ class TestResult(object):
|
|||
return length
|
||||
|
||||
def __repr__(self):
|
||||
return "<%s run=%i errors=%i failures=%i>" % \
|
||||
return ("<%s run=%i errors=%i failures=%i>" %
|
||||
(util.strclass(self.__class__), self.testsRun, len(self.errors),
|
||||
len(self.failures))
|
||||
len(self.failures)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue