~lifeless/debian/sid/python-testtools/packaging

« back to all changes in this revision

Viewing changes to testtools/tests/helpers.py

  • Committer: Robert Collins
  • Date: 2009-12-15 23:13:38 UTC
  • mfrom: (16.11.2 upstream)
  • Revision ID: robertc@robertcollins.net-20091215231338-en4foxftyfaaqgn0
* New upstream release.
* Include the manual in the package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
"""Helpers for tests."""
4
4
 
 
5
import sys
 
6
 
5
7
__metaclass__ = type
6
8
__all__ = [
7
9
    'LoggingResult',
10
12
from testtools import TestResult
11
13
 
12
14
 
 
15
try:
 
16
    raise Exception
 
17
except Exception:
 
18
    an_exc_info = sys.exc_info()
 
19
 
13
20
# Deprecated: This classes attributes are somewhat non deterministic which
14
21
# leads to hard to predict tests (because Python upstream are changing things.
15
22
class LoggingResult(TestResult):
55
62
        self._events.append('done')
56
63
        super(LoggingResult, self).done()
57
64
 
58
 
 
59
 
class LoggingBase(object):
60
 
    """Basic support for logging of results."""
61
 
    
62
 
    def __init__(self):
63
 
        self._events = []
64
 
        self.shouldStop = False
65
 
 
66
 
 
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."""
71
 
 
72
 
    def addError(self, test, err):
73
 
        self._events.append(('addError', test, err))
74
 
 
75
 
    def addFailure(self, test, err):
76
 
        self._events.append(('addFailure', test, err))
77
 
 
78
 
    def addSuccess(self, test):
79
 
        self._events.append(('addSuccess', test))
80
 
 
81
 
    def startTest(self, test):
82
 
        self._events.append(('startTest', test))
83
 
 
84
 
    def stop(self):
85
 
        self.shouldStop = True
86
 
 
87
 
    def stopTest(self, test):
88
 
        self._events.append(('stopTest', test))
89
 
 
90
 
 
91
 
class Python27TestResult(Python26TestResult):
92
 
    """A precisely python 2.7 like test result, that logs."""
93
 
 
94
 
    def addExpectedFailure(self, test, err):
95
 
        self._events.append(('addExpectedFailure', test, err))
96
 
 
97
 
    def addSkip(self, test, reason):
98
 
        self._events.append(('addSkip', test, reason))
99
 
 
100
 
    def addUnexpectedSuccess(self, test):
101
 
        self._events.append(('addUnexpectedSuccess', test))
102
 
 
103
 
    def startTestRun(self):
104
 
        self._events.append(('startTestRun',))
105
 
 
106
 
    def stopTestRun(self):
107
 
        self._events.append(('stopTestRun',))
108
 
 
109
 
 
110
 
class ExtendedTestResult(Python27TestResult):
111
 
    """A test result like the proposed extended unittest result API."""
112
 
 
113
 
    def addError(self, test, err=None, details=None):
114
 
        self._events.append(('addError', test, err or details))
115
 
 
116
 
    def addFailure(self, test, err=None, details=None):
117
 
        self._events.append(('addFailure', test, err or details))
118
 
 
119
 
    def addExpectedFailure(self, test, err=None, details=None):
120
 
        self._events.append(('addExpectedFailure', test, err or details))
121
 
 
122
 
    def addSkip(self, test, reason=None, details=None):
123
 
        self._events.append(('addSkip', test, reason or details))
124
 
 
125
 
    def addSuccess(self, test, details=None):
126
 
        if details:
127
 
            self._events.append(('addSuccess', test, details))
128
 
        else:
129
 
            self._events.append(('addSuccess', test))
130
 
 
131
 
    def addUnexpectedSuccess(self, test, details=None):
132
 
        if details is not None:
133
 
            self._events.append(('addUnexpectedSuccess', test, details))
134
 
        else:
135
 
            self._events.append(('addUnexpectedSuccess', test))
136
 
 
137
 
    def progress(self, offset, whence):
138
 
        self._events.append(('progress', offset, whence))
139
 
 
140
 
    def tags(self, new_tags, gone_tags):
141
 
        self._events.append(('tags', new_tags, gone_tags))
142
 
 
143
 
    def time(self, time):
144
 
        self._events.append(('time', time))
 
67
from testtools.testresult.doubles import *