1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-04 08:22:08 +03:00

subunit.run: report failure in process return code

The protocol requires that the TestResult object remembers when it has failed, but
in subclassing unittest.TestResult we forgot to ensure this is true.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Douglas Bagnall
2018-02-09 09:51:54 +13:00
committed by Andrew Bartlett
parent d8aa50b217
commit 055b7308d2

View File

@ -94,6 +94,10 @@ class TestProtocolClient(unittest.TestResult):
def __init__(self, stream): def __init__(self, stream):
unittest.TestResult.__init__(self) unittest.TestResult.__init__(self)
self._stream = stream self._stream = stream
self.failed = False
def wasSuccessful(self):
return not self.failed
def addError(self, test, error=None): def addError(self, test, error=None):
"""Report an error in test test. """Report an error in test test.
@ -102,6 +106,7 @@ class TestProtocolClient(unittest.TestResult):
exc_info tuple. exc_info tuple.
""" """
self._addOutcome("error", test, error=error) self._addOutcome("error", test, error=error)
self.failed = True
def addExpectedFailure(self, test, error=None): def addExpectedFailure(self, test, error=None):
"""Report an expected failure in test test. """Report an expected failure in test test.
@ -118,6 +123,7 @@ class TestProtocolClient(unittest.TestResult):
exc_info tuple. exc_info tuple.
""" """
self._addOutcome("failure", test, error=error) self._addOutcome("failure", test, error=error)
self.failed = True
def _addOutcome(self, outcome, test, error=None, error_permitted=True): def _addOutcome(self, outcome, test, error=None, error_permitted=True):
"""Report a failure in test test. """Report a failure in test test.
@ -161,6 +167,7 @@ class TestProtocolClient(unittest.TestResult):
"""Report an unexpected success in test test. """Report an unexpected success in test test.
""" """
self._addOutcome("uxsuccess", test, error_permitted=False) self._addOutcome("uxsuccess", test, error_permitted=False)
self.failed = True
def startTest(self, test): def startTest(self, test):
"""Mark a test as starting its test run.""" """Mark a test as starting its test run."""