1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#! /usr/bin/env python3
from test import support
from test import regrtest
import unittest
import sys
# Define a test result class which outputs results in the desired format.
class ptestResult(unittest.TestResult):
def __init__(self, runner):
super(ptestResult, self).__init__()
self.runner = runner
def addError(self, test, err):
super(ptestResult, self).addError(test, err)
self.runner.write("ERROR: %s: %s\n" % (str(test), str(err[1])))
def addSuccess(self, test):
super(ptestResult, self).addSuccess(test)
self.runner.write("PASS: %s\n" % str(test))
def addFailure(self, test, err):
super(ptestResult, self).addFailure(test, err)
self.runner.write("FAIL: %s: %s\n" % (str(test), str(err[1])))
def addSkip(self, test, reason):
super(ptestResult, self).addSkip(test, reason)
self.runner.write("SKIP: %s: %s\n" % (str(test), str(reason)))
def addExpectedFailure(self, test, err):
super(ptestResult, self).addExpectedFailure(test, err)
self.runner.write("XFAIL: %s\n" % (str(test)))
def addUnexpectedSuccess(self, test):
super(ptestResult, self).addUnexpectedSuccess(test)
self.runner.write("XPASS: %s\n" % str(test))
# Define a test runner which uses the above output class.
class ptestRunner:
def __init__(self, stream=sys.stderr):
self.stream = stream
def write(self, message):
self.stream.write(message)
def run(self, test):
result = ptestResult(self)
test(result)
return result
# Replace the test runner in python's standard library 'test.support'.
support.BasicTestRunner = ptestRunner
# Run the python regression test suite - the replacement test runner will be
# used.
regrtest.main()
|