Mercurial > public > mercurial-scm > hg-stable
diff tests/basic_test_result.py @ 38616:c44ae5997869
run-tests: add support for external test result
The goal is to begin experiment with custom test result. I'm not sure we
should offers any backward-compatibility guarantee on that plugin API as it
doesn't change often and shouldn't have too much clients.
Differential Revision: https://phab.mercurial-scm.org/D3700
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Sat, 28 Apr 2018 12:51:44 +0200 |
parents | |
children | f4a214300957 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/basic_test_result.py Sat Apr 28 12:51:44 2018 +0200 @@ -0,0 +1,46 @@ +from __future__ import print_function + +import unittest + +class TestResult(unittest._TextTestResult): + + def __init__(self, options, *args, **kwargs): + super(TestResult, self).__init__(*args, **kwargs) + self._options = options + + # unittest.TestResult didn't have skipped until 2.7. We need to + # polyfill it. + self.skipped = [] + + # We have a custom "ignored" result that isn't present in any Python + # unittest implementation. It is very similar to skipped. It may make + # sense to map it into skip some day. + self.ignored = [] + + self.times = [] + self._firststarttime = None + # Data stored for the benefit of generating xunit reports. + self.successes = [] + self.faildata = {} + + def addFailure(self, test, reason): + print("FAILURE!", test, reason) + + def addSuccess(self, test): + print("SUCCESS!", test) + + def addError(self, test, err): + print("ERR!", test, err) + + # Polyfill. + def addSkip(self, test, reason): + print("SKIP!", test, reason) + + def addIgnore(self, test, reason): + print("IGNORE!", test, reason) + + def addOutputMismatch(self, test, ret, got, expected): + return False + + def stopTest(self, test, interrupted=False): + super(TestResult, self).stopTest(test)