Record data parameter formats in tool parameter models

DataParameterModel and DataCollectionParameterModel have an extensions
field, but the factory never set it, so every model reported ["data"].
This commit is contained in:
mvdbeek
2026-10-12 13:36:19 +02:00
committed by davelopez
parent e4eec5536b
commit 5855938137
2 changed files with 18 additions and 0 deletions
@@ -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":
@@ -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)