|
@@ -77,14 +77,17 @@ class ProxyTestResult:
|
|
|
# a very basic TestResult proxy, in order to modify add* calls
|
|
|
def __init__(self, target):
|
|
|
self.result = target
|
|
|
+ self.failed_tests = 0
|
|
|
|
|
|
def _addResult(self, method, test, *args, exception = False, **kwargs):
|
|
|
return method(test, *args, **kwargs)
|
|
|
|
|
|
def addError(self, test, err = None, **kwargs):
|
|
|
+ self.failed_tests += 1
|
|
|
self._addResult(self.result.addError, test, err, exception = True, **kwargs)
|
|
|
|
|
|
def addFailure(self, test, err = None, **kwargs):
|
|
|
+ self.failed_tests += 1
|
|
|
self._addResult(self.result.addFailure, test, err, exception = True, **kwargs)
|
|
|
|
|
|
def addSuccess(self, test, **kwargs):
|
|
@@ -96,6 +99,9 @@ class ProxyTestResult:
|
|
|
def addUnexpectedSuccess(self, test, **kwargs):
|
|
|
self._addResult(self.result.addUnexpectedSuccess, test, **kwargs)
|
|
|
|
|
|
+ def wasSuccessful(self):
|
|
|
+ return self.failed_tests == 0
|
|
|
+
|
|
|
def __getattr__(self, attr):
|
|
|
return getattr(self.result, attr)
|
|
|
|
|
@@ -287,10 +293,10 @@ def fork_for_tests(concurrency_num, suite):
|
|
|
# as per default in parent code
|
|
|
subunit_client.buffer = True
|
|
|
subunit_result = AutoTimingTestResultDecorator(subunit_client)
|
|
|
- process_suite.run(ExtraResultsEncoderTestResult(subunit_result))
|
|
|
+ unittest_result = process_suite.run(ExtraResultsEncoderTestResult(subunit_result))
|
|
|
if ourpid != os.getpid():
|
|
|
os._exit(0)
|
|
|
- if newbuilddir:
|
|
|
+ if newbuilddir and unittest_result.wasSuccessful():
|
|
|
removebuilddir(newbuilddir)
|
|
|
except:
|
|
|
# Don't do anything with process children
|