diff --git a/lib/galaxy/tool_util/parameters/factory.py b/lib/galaxy/tool_util/parameters/factory.py index e2d5e42d514..e672f3cb28d 100644 --- a/lib/galaxy/tool_util/parameters/factory.py +++ b/lib/galaxy/tool_util/parameters/factory.py @@ -232,6 +232,7 @@ def _from_input_source_galaxy(input_source: InputSource, profile: float) -> Tool optional=optional, multiple=multiple, url_default=url_default, + extensions=input_source.parse_extensions(), **_common_param_kwargs(input_source), ) elif param_type == "data_collection": @@ -243,6 +244,7 @@ def _from_input_source_galaxy(input_source: InputSource, profile: float) -> Tool name=input_source.parse_name(), optional=optional, value=default_value, + extensions=input_source.parse_extensions(), **_common_param_kwargs(input_source), ) elif param_type == "select": diff --git a/test/unit/tool_util/test_parameter_convert.py b/test/unit/tool_util/test_parameter_convert.py index 12028001475..bee772863f6 100644 --- a/test/unit/tool_util/test_parameter_convert.py +++ b/test/unit/tool_util/test_parameter_convert.py @@ -23,11 +23,14 @@ from galaxy.tool_util.parameters import ( RequestToolState, strictify, ) +from galaxy.tool_util.parser.factory import get_tool_source from galaxy.tool_util.parser.util import parse_profile_version +from galaxy.tool_util.unittest_utils import functional_test_tool_path from galaxy.tool_util_models.parameters import ( BooleanParameterModel, ConditionalParameterModel, ConditionalWhen, + DataCollectionParameterModel, DataParameterModel, SectionParameterModel, ToolParameterBundleModel, @@ -45,6 +48,19 @@ ID_MAP: Dict[int, str] = { } +def test_data_parameter_models_carry_extensions(): + tool_source = get_tool_source(functional_test_tool_path("implicit_conversion_shared_input_y.yml")) + bundle = input_models_for_tool_source(tool_source) + assert [p.extensions for p in bundle.parameters if isinstance(p, DataParameterModel)] == [["fasta"], ["tabular"]] + + +def test_data_collection_parameter_models_carry_extensions(): + bundle = input_models_for_tool_source(tool_source_for("implicit_collection_conversion")) + (parameter,) = bundle.parameters + assert isinstance(parameter, DataCollectionParameterModel) + assert parameter.extensions == ["tabular"] + + def test_decode_data(): tool_source = tool_source_for("parameters/gx_data") bundle = input_models_for_tool_source(tool_source)