run_tests: add a command-line option to enable debug logs

This commit is contained in:
mathieui 2021-02-14 11:33:47 +01:00
parent 2f0660c6ff
commit 94700de7a3

View file

@ -10,7 +10,7 @@ from importlib import import_module
from pathlib import Path
def run_tests(filenames=None):
def run_tests(filenames=None, debug=False):
"""
Find and run all tests in the tests/ directory.
@ -31,9 +31,12 @@ def run_tests(filenames=None):
tests = unittest.TestSuite(suites)
runner = unittest.TextTestRunner(verbosity=2)
# Disable logging output
logging.basicConfig(level=100)
logging.disable(100)
if debug:
logging.basicConfig(level='DEBUG')
else:
# Disable logging output
logging.basicConfig(level=100)
logging.disable(100)
result = runner.run(tests)
return result
@ -58,9 +61,10 @@ class TestCommand(Command):
if __name__ == '__main__':
parser = ArgumentParser(description='Run unit tests.')
parser.add_argument('tests', metavar='TEST', nargs='*', help='list of tests to run, or nothing to run them all')
parser.add_argument('-d', '--debug', action='store_true', dest='debug', default=False, help='enable debug output')
args = parser.parse_args()
result = run_tests(args.tests)
result = run_tests(args.tests, args.debug)
print("<tests %s ran='%s' errors='%s' fails='%s' success='%s'/>" % (
"xmlns='http//andyet.net/protocol/tests'",
result.testsRun, len(result.errors),