[PATCH] run-tests: allow automatic test discovery when providing folder as argument

Yuya Nishihara yuya at tcha.org
Fri Nov 3 10:24:39 EDT 2017


On Fri, 03 Nov 2017 08:41:35 +0900, matthieu.laneuville at octobus.net wrote:
> # HG changeset patch
> # User Matthieu Laneuville <matthieu.laneuville at octobus.net>
> # Date 1508422437 -32400
> #      Thu Oct 19 23:13:57 2017 +0900
> # Node ID 0e692e27fb01c6c0619054ac4f32ce756071bf5a
> # Parent  7ebf850d3166a64ff33b4b85adb481b533ddbf86
> # EXP-Topic hg122
> run-tests: allow automatic test discovery when providing folder as argument
> 
> Currently `run-tests.py` automatically discovers test only in the current
> directory if no argument is provided. This patch makes it possible to pass a
> number of tests and folders as arguments.

Seems fine.

> diff -r 7ebf850d3166 -r 0e692e27fb01 tests/run-tests.py
> --- a/tests/run-tests.py	Sat Oct 21 16:50:57 2017 +0900
> +++ b/tests/run-tests.py	Thu Oct 19 23:13:57 2017 +0900
> @@ -2510,6 +2510,16 @@ class TestRunner(object):
>              else:
>                  args = os.listdir(b'.')
>  
> +        expanded_args = []
> +        for arg in args:
> +            if os.path.isdir(arg):
> +                if not arg.endswith('/'):
> +                    arg += '/'

b'/'

> +                expanded_args.extend([arg + a for a in os.listdir(arg)])
> +            else:
> +                expanded_args.append(arg)
> +        args = expanded_args
> +
>          tests = []
>          for t in args:

If we want to find test files recursively, os.walk() can be used. I don't
know whether it is a good idea, though.


More information about the Mercurial-devel mailing list