You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.9 KiB
96 lines
2.9 KiB
7 years ago
|
#!/bin/sh
|
||
|
''''exec python -u "$0" "$@" #'''
|
||
|
|
||
|
# $Id: alltests.py 8124 2017-06-23 02:29:16Z goodger $
|
||
|
# Author: David Goodger <goodger@python.org>
|
||
|
# Copyright: This module has been placed in the public domain.
|
||
|
|
||
|
__doc__ = \
|
||
|
"""
|
||
|
All modules named 'test_*.py' in the current directory, and recursively in
|
||
|
subdirectories (packages) called 'test_*', are loaded and test suites within
|
||
|
are run.
|
||
|
"""
|
||
|
|
||
|
import time
|
||
|
# Start point for actual elapsed time, including imports
|
||
|
# and setup outside of unittest.
|
||
|
start = time.time()
|
||
|
|
||
|
import sys
|
||
|
import os
|
||
|
import platform
|
||
|
import DocutilsTestSupport # must be imported before docutils
|
||
|
import docutils
|
||
|
|
||
|
|
||
|
class Tee:
|
||
|
|
||
|
"""Write to a file and a stream (default: stdout) simultaneously."""
|
||
|
|
||
|
def __init__(self, filename, stream=sys.__stdout__):
|
||
|
self.file = open(filename, 'w')
|
||
|
self.stream = stream
|
||
|
self.encoding = getattr(stream, 'encoding', None)
|
||
|
|
||
|
def write(self, string):
|
||
|
try:
|
||
|
self.stream.write(string)
|
||
|
self.file.write(string)
|
||
|
except UnicodeEncodeError: # Py3k writing to "ascii" stream/file
|
||
|
string = string.encode('raw_unicode_escape').decode('ascii')
|
||
|
self.stream.write(string)
|
||
|
self.file.write(string)
|
||
|
|
||
|
def flush(self):
|
||
|
self.stream.flush()
|
||
|
self.file.flush()
|
||
|
|
||
|
|
||
|
def pformat(suite):
|
||
|
step = 4
|
||
|
suitestr = repr(suite).replace('=[<', '=[\n<').replace(', ', ',\n')
|
||
|
indent = 0
|
||
|
output = []
|
||
|
for line in suitestr.splitlines():
|
||
|
output.append(' ' * indent + line)
|
||
|
if line[-1:] == '[':
|
||
|
indent += step
|
||
|
else:
|
||
|
if line [-5:] == ']>]>,':
|
||
|
indent -= step * 2
|
||
|
elif line[-3:] == ']>,':
|
||
|
indent -= step
|
||
|
return '\n'.join(output)
|
||
|
|
||
|
def suite():
|
||
|
path, script = os.path.split(sys.argv[0])
|
||
|
suite = package_unittest.loadTestModules(DocutilsTestSupport.testroot,
|
||
|
'test_', packages=1)
|
||
|
sys.stdout.flush()
|
||
|
return suite
|
||
|
|
||
|
# must redirect stderr *before* first import of unittest
|
||
|
sys.stdout = sys.stderr = Tee('alltests.out')
|
||
|
|
||
|
import package_unittest
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
suite = suite()
|
||
|
print ('Testing Docutils %s with Python %s on %s at %s'
|
||
|
% (docutils.__version__, sys.version.split()[0],
|
||
|
time.strftime('%Y-%m-%d'), time.strftime('%H:%M:%S')))
|
||
|
print ('OS: %s %s %s (%s, %s)'
|
||
|
% (platform.system(), platform.release(), platform.version(),
|
||
|
sys.platform, platform.platform()))
|
||
|
print 'Working directory: %s' % os.getcwd()
|
||
|
print 'Docutils package: %s' % os.path.dirname(docutils.__file__)
|
||
|
sys.stdout.flush()
|
||
|
result = package_unittest.main(suite)
|
||
|
#if package_unittest.verbosity > 1:
|
||
|
# print >>sys.stderr, pformat(suite) # check the test suite
|
||
|
finish = time.time()
|
||
|
print 'Elapsed time: %.3f seconds' % (finish - start)
|
||
|
sys.exit(not result.wasSuccessful())
|