home · contact · privacy
To testing invocation add test file selection.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 24 Jan 2026 11:13:28 +0000 (12:13 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 24 Jan 2026 11:13:28 +0000 (12:13 +0100)
src/ledgplom/testing.py
src/run.py

index a6209d73e9b182c32717d9c8bc591b518e81fca6..dbea8160e05f59856863b9e988bc7df5f29de7a4 100644 (file)
@@ -16,9 +16,12 @@ _PATH_TESTS = Path('tests')
 _TAGS_EXPANDED = {'<EXPANDED>', '</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:
 
index c6546d0d6829e47e256c711bc6158165ab93aeff..b064be92d3b4be15e8878d3505026c2e935771be 100755 (executable)
@@ -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)