diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index b9476a3a225..f39e9a214f0 100644 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -3459,7 +3459,7 @@ class SortTool(DatabaseOperationTool): sorttype = incoming["sort_type"]["sort_type"] new_elements = {} elements = hdca.collection.elements - presort_elements = [] + presort_elements = None if sorttype == "alpha": presort_elements = [(dce.element_identifier, dce) for dce in elements] elif sorttype == "numeric": @@ -3484,7 +3484,7 @@ class SortTool(DatabaseOperationTool): else: raise Exception(f"Unknown sort_type '{sorttype}'") - if presort_elements: + if presort_elements is not None: sorted_elements = [x[1] for x in sorted(presort_elements, key=lambda x: x[0])] for dce in sorted_elements: diff --git a/lib/galaxy_test/api/test_workflows.py b/lib/galaxy_test/api/test_workflows.py index 4f7f4c82100..de4535a59bd 100644 --- a/lib/galaxy_test/api/test_workflows.py +++ b/lib/galaxy_test/api/test_workflows.py @@ -6108,6 +6108,44 @@ input: put_response = self._update_workflow(workflow_id, workflow_object) assert put_response.status_code == 200 + def test_empty_collection_sort(self, history_id): + self._run_workflow( + """class: GalaxyWorkflow +inputs: + input: collection + filter_file: data +steps: + filter_collection: + tool_id: __FILTER_FROM_FILE__ + in: + input: input + how|filter_source: filter_file + sort_collection_1: + tool_id: __SORTLIST__ + in: + input: filter_collection/output_filtered + sort_collection_2: + tool_id: __SORTLIST__ + in: + input: filter_collection/output_discarded + merge_collection: + tool_id: __MERGE_COLLECTION__ + in: + inputs_0|input: sort_collection_1/output + inputs_1|input: sort_collection_2/output +test_data: + input: + collection_type: list + elements: + - identifier: i1 + content: "0" + filter_file: i1 +""", + history_id=history_id, + wait=True, + assert_ok=True, + ) + @skip_without_tool("random_lines1") def test_run_replace_params_over_default_delayed(self): with self.dataset_populator.test_history() as history_id: