From 7db3dcf713446f98bd68ce232540bb79f79c31d7 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 24 Aug 2026 18:49:02 +0300 Subject: [PATCH 1/2] Treat multiple selects as optional by default in the tool parameter model --- lib/galaxy/tool_util/parameters/factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tool_util/parameters/factory.py b/lib/galaxy/tool_util/parameters/factory.py index bdd7be88920..56f13b3517c 100644 --- a/lib/galaxy/tool_util/parameters/factory.py +++ b/lib/galaxy/tool_util/parameters/factory.py @@ -246,10 +246,10 @@ def _from_input_source_galaxy(input_source: InputSource, profile: float) -> Tool ) elif param_type == "select": # Function... example in devteam cummeRbund. - optional = input_source.parse_optional() dynamic_options_config = input_source.parse_dynamic_options() is_static = dynamic_options_config is None multiple = input_source.get_bool("multiple", False) + optional = input_source.parse_optional(multiple) options: list[LabelValue] | None = None if is_static: options = [] From 022812ed60923982ad5efaa48eae9015500fb475 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 24 Aug 2026 19:26:35 +0300 Subject: [PATCH 2/2] Cover multiple selects with a no_options validator --- ..._select_multiple_no_options_validation.xml | 20 +++++++++++++++++++ .../tool_util/parameter_specification.yml | 15 ++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 test/functional/tools/parameters/gx_select_multiple_no_options_validation.xml diff --git a/test/functional/tools/parameters/gx_select_multiple_no_options_validation.xml b/test/functional/tools/parameters/gx_select_multiple_no_options_validation.xml new file mode 100644 index 00000000000..67ac26a60f3 --- /dev/null +++ b/test/functional/tools/parameters/gx_select_multiple_no_options_validation.xml @@ -0,0 +1,20 @@ + + > '$output' + ]]> + + + + + + + + + + + + + + + + diff --git a/test/unit/tool_util/parameter_specification.yml b/test/unit/tool_util/parameter_specification.yml index 7b1b125c0ae..59bea6b472c 100644 --- a/test/unit/tool_util/parameter_specification.yml +++ b/test/unit/tool_util/parameter_specification.yml @@ -729,7 +729,7 @@ gx_select_multiple: request_valid: - parameter: ["--ex1"] - parameter: ["ex2"] - # ugh... but these aren't optional... + # multiple selects are optional by default - parameter: null - {} request_invalid: @@ -754,7 +754,6 @@ gx_select_multiple: - parameter: ["--ex1"] - parameter: ["ex2"] - {} # could come in linked... - # ... hmmm? this should maybe be invalid right? - parameter: null job_internal_valid: - parameter: ["--ex1"] @@ -822,6 +821,18 @@ gx_select_no_options_validation: job_runtime_invalid: - {} +gx_select_multiple_no_options_validation: + job_internal_valid: + - parameter: ["--ex1"] + - parameter: null + job_internal_invalid: + - {} + job_runtime_valid: + - parameter: ["--ex1"] + - parameter: null + job_runtime_invalid: + - {} + gx_genomebuild: request_valid: - parameter: hg19