summaryrefslogtreecommitdiffstats
path: root/Lib/unittest/case.py
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2023-04-02 22:12:51 (GMT)
committerGitHub <noreply@github.com>2023-04-02 22:12:51 (GMT)
commit6883007a86bdf0d7cf4560b949fd5e577dab1013 (patch)
treeb5585b8135e1136d9b567dda62e887a27033b392 /Lib/unittest/case.py
parenta0305c5fdfdef7a362d0262c54399c4a6013d1ea (diff)
downloadcpython-6883007a86bdf0d7cf4560b949fd5e577dab1013.zip
cpython-6883007a86bdf0d7cf4560b949fd5e577dab1013.tar.gz
cpython-6883007a86bdf0d7cf4560b949fd5e577dab1013.tar.bz2
bpo-4080: unittest durations (#12271)
Diffstat (limited to 'Lib/unittest/case.py')
-rw-r--r--Lib/unittest/case.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index 5167c5f..018f22e 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -9,6 +9,7 @@ import warnings
import collections
import contextlib
import traceback
+import time
import types
from . import result
@@ -572,6 +573,15 @@ class TestCase(object):
else:
addUnexpectedSuccess(self)
+ def _addDuration(self, result, elapsed):
+ try:
+ addDuration = result.addDuration
+ except AttributeError:
+ warnings.warn("TestResult has no addDuration method",
+ RuntimeWarning)
+ else:
+ addDuration(self, elapsed)
+
def _callSetUp(self):
self.setUp()
@@ -612,6 +622,7 @@ class TestCase(object):
getattr(testMethod, "__unittest_expecting_failure__", False)
)
outcome = _Outcome(result)
+ start_time = time.perf_counter()
try:
self._outcome = outcome
@@ -625,6 +636,7 @@ class TestCase(object):
with outcome.testPartExecutor(self):
self._callTearDown()
self.doCleanups()
+ self._addDuration(result, (time.perf_counter() - start_time))
if outcome.success:
if expecting_failure: