bugtests.driver.py Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython-standalone Show documentation
Show all versions of jython-standalone Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
import sys, string, traceback, getopt, support, os, glob
failures = {}
warnings = {}
skipped = {}
def runTests(seq):
def report(msg, errors_dict, loud=1):
print n, msg
errors_dict[n] = 1
if loud:
if m and hasattr(m, "__doc__"):
print m.__doc__.strip()
print " ", sys.exc_info()[0]
print " ", sys.exc_info()[1]
traceback.print_tb(sys.exc_info()[2], file=sys.stdout)
for n in seq:
m = None
try:
stdout = sys.stdout
if os.path.isfile(n + ".py"):
m = __import__(n)
sys.stdout = stdout
print n, "OK"
else:
print n, "Skipped"
except support.TestWarning:
sys.stdout = stdout
report("Warning", warnings, loud=loud_warnings)
except support.TestSkip:
report("Skipped", skipped, loud=0)
except:
sys.stdout = stdout
report("Failed", failures)
summarize(failures, "failures")
summarize(warnings, "warnings")
summarize(skipped, "skipped")
def summarize(errors_dict, description):
t = errors_dict.keys()
t.sort()
print "%d %s" % (len(t), description)
print t
if __name__ == '__main__':
opts, args = getopt.getopt(sys.argv[1:], 'wc', 'runjythonc')
loud_warnings = ('-w',"") in opts
support.test_jythonc = ('--runjythonc', '') in opts
if loud_warnings:
print "LOUD warnings"
if support.test_jythonc:
print 'Running jythonc tests'
sys.path[:0] = ['classes']
if len(args) > 0:
tests = [int(test) for test in args[0].split(',')]
else:
testfiles = glob.glob('test???.py')
testfiles.sort()
lastTest = testfiles[-1]
tests = range(int(lastTest[4:7]) + 1)# upper bound: last test + 1
runTests(["test%3.3d" % i for i in tests])
if len(failures) + len(warnings) > 0:
rc = 1
else:
rc = 0
sys.exit(rc)