Stop checking status; raise instead
diff --git a/test/runjsontests.py b/test/runjsontests.py
index dfdeca3..26caf0c 100644
--- a/test/runjsontests.py
+++ b/test/runjsontests.py
@@ -62,6 +62,10 @@
except IOError as e:
return '<File "%s" is missing: %s>' % (path,e)
+class FailError(Exception):
+ def __init__(self, msg):
+ super(Exception, self).__init__(msg)
+
def runAllTests(jsontest_executable_path, input_dir = None,
use_valgrind=False, with_json_checker=False,
writerClass='StyledWriter'):
@@ -161,10 +165,9 @@
print()
print('Test results: %d passed, %d failed.' % (len(tests)-len(failed_tests),
len(failed_tests)))
- return 1
+ raise FailError(repr(failed_tests))
else:
print('All %d tests passed.' % len(tests))
- return 0
def main():
from optparse import OptionParser
@@ -187,24 +190,21 @@
input_path = os.path.normpath(os.path.abspath(args[1]))
else:
input_path = None
- status = runAllTests(jsontest_executable_path, input_path,
+ runAllTests(jsontest_executable_path, input_path,
use_valgrind=options.valgrind,
with_json_checker=options.with_json_checker,
writerClass='StyledWriter')
- if status:
- sys.exit(status)
- status = runAllTests(jsontest_executable_path, input_path,
+ runAllTests(jsontest_executable_path, input_path,
use_valgrind=options.valgrind,
with_json_checker=options.with_json_checker,
writerClass='StyledStreamWriter')
- if status:
- sys.exit(status)
- status = runAllTests(jsontest_executable_path, input_path,
+ runAllTests(jsontest_executable_path, input_path,
use_valgrind=options.valgrind,
with_json_checker=options.with_json_checker,
writerClass='BuiltStyledStreamWriter')
- if status:
- sys.exit(status)
if __name__ == '__main__':
- main()
+ try:
+ main()
+ except FailError:
+ sys.exit(1)