diff options
Diffstat (limited to 'lib/testtools/testtools/testresult/doubles.py')
-rw-r--r-- | lib/testtools/testtools/testresult/doubles.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/testtools/testtools/testresult/doubles.py b/lib/testtools/testtools/testresult/doubles.py index d231c919c2..7e4a2c9b41 100644 --- a/lib/testtools/testtools/testresult/doubles.py +++ b/lib/testtools/testtools/testresult/doubles.py @@ -1,4 +1,4 @@ -# Copyright (c) 2009 Jonathan M. Lange. See LICENSE for details. +# Copyright (c) 2009-2010 Jonathan M. Lange. See LICENSE for details. """Doubles of test result objects, useful for testing unittest code.""" @@ -15,15 +15,18 @@ class LoggingBase(object): def __init__(self): self._events = [] self.shouldStop = False + self._was_successful = True class Python26TestResult(LoggingBase): """A precisely python 2.6 like test result, that logs.""" def addError(self, test, err): + self._was_successful = False self._events.append(('addError', test, err)) def addFailure(self, test, err): + self._was_successful = False self._events.append(('addFailure', test, err)) def addSuccess(self, test): @@ -38,6 +41,9 @@ class Python26TestResult(LoggingBase): def stopTest(self, test): self._events.append(('stopTest', test)) + def wasSuccessful(self): + return self._was_successful + class Python27TestResult(Python26TestResult): """A precisely python 2.7 like test result, that logs.""" @@ -62,9 +68,11 @@ class ExtendedTestResult(Python27TestResult): """A test result like the proposed extended unittest result API.""" def addError(self, test, err=None, details=None): + self._was_successful = False self._events.append(('addError', test, err or details)) def addFailure(self, test, err=None, details=None): + self._was_successful = False self._events.append(('addFailure', test, err or details)) def addExpectedFailure(self, test, err=None, details=None): @@ -80,6 +88,7 @@ class ExtendedTestResult(Python27TestResult): self._events.append(('addSuccess', test)) def addUnexpectedSuccess(self, test, details=None): + self._was_successful = False if details is not None: self._events.append(('addUnexpectedSuccess', test, details)) else: @@ -88,8 +97,15 @@ class ExtendedTestResult(Python27TestResult): def progress(self, offset, whence): self._events.append(('progress', offset, whence)) + def startTestRun(self): + super(ExtendedTestResult, self).startTestRun() + self._was_successful = True + def tags(self, new_tags, gone_tags): self._events.append(('tags', new_tags, gone_tags)) def time(self, time): self._events.append(('time', time)) + + def wasSuccessful(self): + return self._was_successful |