From 58f3a0e5ed49b7f12f4fb9a9472edb09fecc5821 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Tue, 19 Dec 2017 13:02:42 -0700 Subject: [PATCH] Add a __main__ for running the test suite. --- tests/__main__.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/__main__.py diff --git a/tests/__main__.py b/tests/__main__.py new file mode 100644 index 00000000..8df0e6f4 --- /dev/null +++ b/tests/__main__.py @@ -0,0 +1,30 @@ + +import os +import os.path +from unittest.main import main +import sys + + +TEST_ROOT = os.path.dirname(__file__) +PROJECT_ROOT = os.path.dirname(TEST_ROOT) + +executable = 'python3 -m unittest' + +if all(arg.startswith('-') for arg in sys.argv[1:]): + argv = [executable, + 'discover', + '--start-directory', PROJECT_ROOT, + '--top-level-directory', PROJECT_ROOT, + ] + sys.argv[1:] +else: + argv = [executable] + sys.argv[1:] + for i, arg in enumerate(argv[1:], 1): + if arg.startswith('-'): + continue + mod, _, test = arg.partition(':') + mod = mod.rstrip(os.sep) + mod = mod.rstrip('.py') + mod = mod.replace(os.sep, '.') + argv[i] = mod if not test else mod + '.' + test + +main(module=None, argv=argv)