55
62
self._events.append('done')
56
63
super(LoggingResult, self).done()
59
class LoggingBase(object):
60
"""Basic support for logging of results."""
64
self.shouldStop = False
67
65
# Note, the following three classes are different to LoggingResult by
68
66
# being fully defined exact matches rather than supersets.
69
class Python26TestResult(LoggingBase):
70
"""A precisely python 2.6 like test result, that logs."""
72
def addError(self, test, err):
73
self._events.append(('addError', test, err))
75
def addFailure(self, test, err):
76
self._events.append(('addFailure', test, err))
78
def addSuccess(self, test):
79
self._events.append(('addSuccess', test))
81
def startTest(self, test):
82
self._events.append(('startTest', test))
85
self.shouldStop = True
87
def stopTest(self, test):
88
self._events.append(('stopTest', test))
91
class Python27TestResult(Python26TestResult):
92
"""A precisely python 2.7 like test result, that logs."""
94
def addExpectedFailure(self, test, err):
95
self._events.append(('addExpectedFailure', test, err))
97
def addSkip(self, test, reason):
98
self._events.append(('addSkip', test, reason))
100
def addUnexpectedSuccess(self, test):
101
self._events.append(('addUnexpectedSuccess', test))
103
def startTestRun(self):
104
self._events.append(('startTestRun',))
106
def stopTestRun(self):
107
self._events.append(('stopTestRun',))
110
class ExtendedTestResult(Python27TestResult):
111
"""A test result like the proposed extended unittest result API."""
113
def addError(self, test, err=None, details=None):
114
self._events.append(('addError', test, err or details))
116
def addFailure(self, test, err=None, details=None):
117
self._events.append(('addFailure', test, err or details))
119
def addExpectedFailure(self, test, err=None, details=None):
120
self._events.append(('addExpectedFailure', test, err or details))
122
def addSkip(self, test, reason=None, details=None):
123
self._events.append(('addSkip', test, reason or details))
125
def addSuccess(self, test, details=None):
127
self._events.append(('addSuccess', test, details))
129
self._events.append(('addSuccess', test))
131
def addUnexpectedSuccess(self, test, details=None):
132
if details is not None:
133
self._events.append(('addUnexpectedSuccess', test, details))
135
self._events.append(('addUnexpectedSuccess', test))
137
def progress(self, offset, whence):
138
self._events.append(('progress', offset, whence))
140
def tags(self, new_tags, gone_tags):
141
self._events.append(('tags', new_tags, gone_tags))
143
def time(self, time):
144
self._events.append(('time', time))
67
from testtools.testresult.doubles import *