2 ''''exec python
-u "$0" "$@" #'''
5 # Author: David Goodger <goodger@python.org>
6 # Copyright: This module has been placed in the public domain.
10 All modules named 'test_*.py' in the current directory, and recursively in
11 subdirectories (packages) called 'test_*', are loaded and test suites within
16 # Start point for actual elapsed time, including imports
17 # and setup outside of unittest.
22 import DocutilsTestSupport
# must be imported before docutils
28 """Write to a file and a stream (default: stdout) simultaneously."""
30 def __init__
(self
, filename
, stream
=sys.__stdout__
):
31 self.
file = open
(filename
, 'w')
33 self.encoding
= getattr
(stream
, 'encoding', None
)
35 def
write(self
, string
):
37 self.stream.
write(string
)
38 self.
file.
write(string
)
39 except UnicodeEncodeError
: # Py3k writing to "ascii" stream/file
40 string
= string.encode
('raw_unicode_escape').decode
('ascii')
41 self.stream.
write(string
)
42 self.
file.
write(string
)
51 suitestr
= repr
(suite
).replace
('=[<', '=[\n<').replace
(', ', ',\n')
54 for line
in suitestr.splitlines
():
55 output.append
(' ' * indent
+ line
)
59 if line
[-5:] == ']>]>,':
61 elif line
[-3:] == ']>,':
63 return '\n'.
join(output
)
66 path
, script = os.path.
split(sys.argv
[0])
67 suite
= package_unittest.loadTestModules
(DocutilsTestSupport.testroot
,
72 # must redirect stderr *before* first import of unittest
73 sys.stdout
= sys.stderr
= Tee
('alltests.out')
75 import package_unittest
78 if __name__
== '__main__':
80 print
('Testing Docutils %s [%s] with Python %s on %s at %s'
81 % (docutils.__version__
, docutils.__version_details__
,
82 sys.version.
split()[0],
83 time.strftime
('%Y-%m-%d'), time.strftime
('%H:%M:%S')))
84 print
'Working directory: %s' % os.getcwd
()
85 print
'Docutils package: %s' % os.path.
dirname(docutils.__file__
)
87 result
= package_unittest.main
(suite
)
88 #if package_unittest.verbosity > 1:
89 # print >>sys.stderr, pformat(suite) # check the test suite
91 print
'Elapsed time: %.3f seconds' % (finish
- start
)
92 sys.
exit(not result.wasSuccessful
())