tests.toml: fix issue when manifest contains questions with no default

This commit is contained in:
Alexandre Aubin 2023-02-03 15:19:38 +01:00
parent 9c5e62ad6d
commit 83d4d8f292
2 changed files with 5 additions and 4 deletions

View file

@ -4,7 +4,7 @@ import sys
import json import json
import toml import toml
def get_default_values_for_questions(manifest): def get_default_values_for_questions(manifest, raise_if_no_default=True):
base_default_value_per_arg_type = { base_default_value_per_arg_type = {
("domain", "domain"): "domain.tld", ("domain", "domain"): "domain.tld",
@ -37,9 +37,10 @@ def get_default_values_for_questions(manifest):
choices = str(question["choices"]) choices = str(question["choices"])
else: else:
choices = list(question["choices"].keys()) choices = list(question["choices"].keys())
yield (name, question["choices"][0]) yield (name, choices[0])
else: else:
raise Exception("No default value could be computed for arg " + name) if raise_if_no_default:
raise Exception("No default value could be computed for arg " + name)
if __name__ == '__main__': if __name__ == '__main__':
manifest_path = sys.argv[1:][0] manifest_path = sys.argv[1:][0]

View file

@ -136,7 +136,7 @@ def build_test_list(basedir):
is_webapp = os.system(f"grep -q '^ynh_add_nginx_config' '{basedir}/scripts/install'") == 0 is_webapp = os.system(f"grep -q '^ynh_add_nginx_config' '{basedir}/scripts/install'") == 0
from default_install_args import get_default_values_for_questions from default_install_args import get_default_values_for_questions
default_install_args = {k: v for k, v in get_default_values_for_questions(manifest)} default_install_args = {k: v for k, v in get_default_values_for_questions(manifest, raise_if_no_default=False)}
base_test_list = list(generate_test_list_base(test_manifest, default_install_args, is_webapp, is_multi_instance)) base_test_list = list(generate_test_list_base(test_manifest, default_install_args, is_webapp, is_multi_instance))
test_list = {test_suite_id: tests for test_suite_id, tests in filter_test_list(test_manifest, base_test_list)} test_list = {test_suite_id: tests for test_suite_id, tests in filter_test_list(test_manifest, base_test_list)}