From fc377b55df5b21922ca7ebe12a96678c70b3d323 Mon Sep 17 00:00:00 2001 From: lsankar4033 Date: Sun, 9 Aug 2020 14:27:57 -0700 Subject: [PATCH] Add logging_tests command w/o error collection --- lib/logging_tests.py | 22 ++++++++++++++++++++++ lib/runner.py | 27 ++++++++++++++------------- logging_tests/test_fail.py | 8 +------- logging_tests/test_success.py | 8 +------- steth.py | 3 ++- 5 files changed, 40 insertions(+), 28 deletions(-) create mode 100644 lib/logging_tests.py diff --git a/lib/logging_tests.py b/lib/logging_tests.py new file mode 100644 index 0000000..3576340 --- /dev/null +++ b/lib/logging_tests.py @@ -0,0 +1,22 @@ +import os + +from lib.runner import run_module, file_to_module + +LOGGING_TESTS_DIR = 'logging_tests' + +def all_logging_test_files(): + tests = [] + for root, dirs, files in os.walk(LOGGING_TESTS_DIR): + tests.extend([f'{root}/{f}' for f in files if f.endswith('.py')]) + + return tests + + +def run_logging_tests(client): + # print client, then call run_module for each test. collect all failures and print them at the end + print(client) + for file in all_logging_test_files(): + # TODO: collect failure + run_module(file_to_module(file), {}) + + # TODO: print out all failures + logs diff --git a/lib/runner.py b/lib/runner.py index 7a659d1..251c7b2 100644 --- a/lib/runner.py +++ b/lib/runner.py @@ -3,6 +3,7 @@ import subprocess import trio +from colored import fg from lib.console import ConsoleWriter from lib.instance_configs import DEFAULT_ARGS @@ -23,23 +24,23 @@ def all_test_files(): def file_to_module(script): return script.replace('/', '.')[0:-3] +def return_code_to_status(return_code): + if return_code == 0: + return f"{fg('green')}\u2713{fg('white')}" -# TODO: add args back in -def run_module(module, args, cw): - print(f'Running module: {module} with args {args}') - #module = importlib.import_module(module) + else: + return f"{fg('red')}\u2717{fg('white')}" - #if not hasattr(module, 'run'): - #cw.fail(f'module {module} does not have a run method') - #return +def run_module(module_str, args): + module = importlib.import_module(module_str) - #return_code = trio.run(module.run, args) - #if return_code == 0: - #cw.success('SUCCESS') + if not hasattr(module, 'run'): + cw.fail(f'module {module} does not have a run method') + return - #else: - #cw.fail('FAILED') + return_code = trio.run(module.run, args) + print(f'\t{module_str} {return_code_to_status(return_code)}') def test_matches_filter(test, test_filter): return test_filter is None or test == test_filter @@ -49,4 +50,4 @@ def run_all_tests(cw=ConsoleWriter(None, None), test_filter=None): if test_matches_filter(test_file, test_filter): cw = cw._replace(test=file_to_module(test_file)) - run_module(file_to_module(test_file), DEFAULT_ARGS, cw) + run_module(file_to_module(test_file), DEFAULT_ARGS) diff --git a/logging_tests/test_fail.py b/logging_tests/test_fail.py index 3fc8ff3..8fff890 100644 --- a/logging_tests/test_fail.py +++ b/logging_tests/test_fail.py @@ -1,8 +1,2 @@ -import trio -from pyrum import SubprocessConn, Rumor - -from .utils import * - -@with_rumor -async def run(rumor, args): +async def run(args): return 1 diff --git a/logging_tests/test_success.py b/logging_tests/test_success.py index 24de356..bf0cbd2 100644 --- a/logging_tests/test_success.py +++ b/logging_tests/test_success.py @@ -1,8 +1,2 @@ -import trio -from pyrum import SubprocessConn, Rumor - -from .utils import with_rumor - -@with_rumor -async def run(rumor, args): +async def run(args): return 0 diff --git a/steth.py b/steth.py index fd53686..c9dcff3 100755 --- a/steth.py +++ b/steth.py @@ -8,6 +8,7 @@ from lib.console import ConsoleWriter from lib.fixtures import extract_fixtures, setup_fixture, teardown_fixture from lib.runner import run_all_tests +from lib.logging_tests import run_logging_tests def run_start_fixture(args): @@ -63,7 +64,7 @@ def run_test(args): def run_logging_test(args): for client in SUPPORTED_CLIENTS: - print(f'Testing client {client}') + run_logging_tests(client) if __name__ == '__main__':