From: Christian Heller Date: Sat, 24 Jan 2026 11:13:28 +0000 (+0100) Subject: To testing invocation add test file selection. X-Git-Url: https://plomlompom.com/repos/booking/%7B%7Bprefix%7D%7D/%7B%7B%20web_path%20%7D%7D/decks/task?a=commitdiff_plain;h=6af028a85cb367db1ab5b7de48fb867d766fd441;p=ledgplom To testing invocation add test file selection. --- diff --git a/src/ledgplom/testing.py b/src/ledgplom/testing.py index a6209d7..dbea816 100644 --- a/src/ledgplom/testing.py +++ b/src/ledgplom/testing.py @@ -16,9 +16,12 @@ _PATH_TESTS = Path('tests') _TAGS_EXPANDED = {'', ''} -def run_tests() -> None: +def run_tests(selector: str) -> None: 'Run tests from tests directory.' - paths = tuple(_PATH_TESTS.iterdir()) + paths = tuple(p for p in _PATH_TESTS.iterdir() + if p.parts[-1].startswith(selector) + or ('.' in selector + and selector.split('.')[0] + _EXT_DAT == p.parts[-1])) def run_tests_on_dat(dat_path: Path, server: PlomHttpServer) -> None: diff --git a/src/run.py b/src/run.py index c6546d0..b064be9 100755 --- a/src/run.py +++ b/src/run.py @@ -15,6 +15,7 @@ except ModuleNotFoundError as e: _ARG_TEST = 'test' +_ARG_TEST_SEP = ':' _NAME_ENV_LEDGER_DAT = 'LEDGER_DAT' _LEDGER_DAT = environ.get(_NAME_ENV_LEDGER_DAT) @@ -25,11 +26,10 @@ if __name__ == '__main__': print(f'{_NAME_ENV_LEDGER_DAT} environment variable not set.') sys_exit(1) Server(Path(_LEDGER_DAT)).serve() - elif len(argv) == 2: - if argv[1] != _ARG_TEST: - print('fail: unknown arg argument') - sys_exit(1) - run_tests() + elif len(argv) == 2 and (argv[1] == _ARG_TEST + or argv[1].startswith(_ARG_TEST + _ARG_TEST_SEP)): + run_tests('' if argv[1] == _ARG_TEST + else argv[1].split(_ARG_TEST_SEP, maxsplit=1)[1]) else: - print('fail: expected zero or one arguments') + print(f'fail: expected zero arguments or one "{_ARG_TEST}" argument') sys_exit(1)