aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/functional/test_runner.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py
index 714298e2e8..3297a10699 100755
--- a/test/functional/test_runner.py
+++ b/test/functional/test_runner.py
@@ -522,23 +522,24 @@ def main():
test_list += BASE_SCRIPTS
# Remove the test cases that the user has explicitly asked to exclude.
+ # The user can specify a test case with or without the .py extension.
if args.exclude:
def print_warning_missing_test(test_name):
print("{}WARNING!{} Test '{}' not found in current test list.".format(BOLD[1], BOLD[0], test_name))
+ def remove_tests(exclude_list):
+ if not exclude_list:
+ print_warning_missing_test(exclude_test)
+ for exclude_item in exclude_list:
+ test_list.remove(exclude_item)
+
exclude_tests = [test.strip() for test in args.exclude.split(",")]
for exclude_test in exclude_tests:
- if exclude_test.endswith('.py'):
- # Remove <test_name>.py and <test_name>.py --arg from the test list
- exclude_list = [test for test in test_list if test.split('.py')[0] == exclude_test.split('.py')[0]]
- if not exclude_list:
- print_warning_missing_test(exclude_test)
- for exclude_item in exclude_list:
- test_list.remove(exclude_item)
+ # A space in the name indicates it has arguments such as "wallet_basic.py --descriptors"
+ if ' ' in exclude_test:
+ remove_tests([test for test in test_list if test.replace('.py', '') == exclude_test.replace('.py', '')])
else:
- try:
- test_list.remove(exclude_test)
- except ValueError:
- print_warning_missing_test(exclude_test)
+ # Exclude all variants of a test
+ remove_tests([test for test in test_list if test.split('.py')[0] == exclude_test.split('.py')[0]])
if args.filter:
test_list = list(filter(re.compile(args.filter).search, test_list))