mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-19 02:21:32 +08:00
Merge pull request #17952 from mvdbeek/fix_implicit_conversion_mapped_over
[23.2] Fix missing implicit conversion for mapped over jobs
This commit is contained in:
@@ -355,6 +355,7 @@ class ToolEvaluator:
|
||||
element_identifier = element_identifier_mapper.identifier(dataset, param_dict)
|
||||
if element_identifier:
|
||||
wrapper_kwds["identifier"] = element_identifier
|
||||
wrapper_kwds["formats"] = input.formats
|
||||
input_values[input.name] = DatasetFilenameWrapper(dataset, **wrapper_kwds)
|
||||
elif isinstance(input, DataCollectionToolParameter):
|
||||
dataset_collection = value
|
||||
|
||||
@@ -3828,6 +3828,31 @@ test_data:
|
||||
assert_ok=True,
|
||||
)
|
||||
|
||||
@skip_without_tool("implicit_conversion_format_input")
|
||||
def test_run_with_implicit_collection_map_over(self):
|
||||
with self.dataset_populator.test_history() as history_id:
|
||||
self._run_workflow(
|
||||
"""
|
||||
class: GalaxyWorkflow
|
||||
inputs:
|
||||
collection: collection
|
||||
steps:
|
||||
map_over:
|
||||
tool_id: implicit_conversion_format_input
|
||||
in:
|
||||
input1: collection
|
||||
test_data:
|
||||
collection:
|
||||
collection_type: list
|
||||
elements:
|
||||
- identifier: 1
|
||||
value: 1.fasta.gz
|
||||
type: File
|
||||
""",
|
||||
history_id=history_id,
|
||||
assert_ok=True,
|
||||
)
|
||||
|
||||
@skip_without_tool("random_lines1")
|
||||
def test_change_datatype_collection_map_over(self):
|
||||
with self.dataset_populator.test_history() as history_id:
|
||||
|
||||
@@ -2857,6 +2857,8 @@ class BaseDatasetCollectionPopulator:
|
||||
history_id=history_id,
|
||||
targets=targets,
|
||||
)
|
||||
if "__files" in kwds:
|
||||
payload["__files"] = kwds.pop("__files")
|
||||
return payload
|
||||
|
||||
def wait_for_fetched_collection(self, fetch_response: Union[Dict[str, Any], Response]):
|
||||
@@ -2992,7 +2994,8 @@ def load_data_dict(
|
||||
if is_dict and ("elements" in value or value.get("collection_type")):
|
||||
elements_data = value.get("elements", [])
|
||||
elements = []
|
||||
for element_data in elements_data:
|
||||
new_collection_kwds: Dict[str, Any] = {}
|
||||
for i, element_data in enumerate(elements_data):
|
||||
# Adapt differences between test_data dict and fetch API description.
|
||||
if "name" not in element_data:
|
||||
identifier = element_data.pop("identifier")
|
||||
@@ -3000,14 +3003,17 @@ def load_data_dict(
|
||||
input_type = element_data.pop("type", "raw")
|
||||
content = None
|
||||
if input_type == "File":
|
||||
content = read_test_data(element_data)
|
||||
content = open_test_data(element_data)
|
||||
element_data["src"] = "files"
|
||||
if "__files" not in new_collection_kwds:
|
||||
new_collection_kwds["__files"] = {}
|
||||
new_collection_kwds["__files"][f"file_{i}|file_data"] = content
|
||||
else:
|
||||
content = element_data.pop("content")
|
||||
if content is not None:
|
||||
element_data["src"] = "pasted"
|
||||
element_data["paste_content"] = content
|
||||
if content is not None:
|
||||
element_data["src"] = "pasted"
|
||||
element_data["paste_content"] = content
|
||||
elements.append(element_data)
|
||||
new_collection_kwds = {}
|
||||
if "name" in value:
|
||||
new_collection_kwds["name"] = value["name"]
|
||||
collection_type = value.get("collection_type", "")
|
||||
|
||||
Reference in New Issue
Block a user