Unverified Commit 0ee5dad0 authored by mvdbeek's avatar mvdbeek
Browse files

Merge branch 'release_25.0' into release_25.1

parents 343b1842 1b4c1ec6
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -140,6 +140,12 @@
    <datatype extension="data" type="galaxy.datatypes.data:Data" mimetype="application/octet-stream" max_optional_metadata_filesize="1048576"/>
    <datatype extension="gz" type="galaxy.datatypes.binary:Binary" subclass="true"/>
    <datatype extension="binary" type="galaxy.datatypes.binary:Binary" mimetype="application/octet-stream" max_optional_metadata_filesize="1048576"/>
    <datatype extension="las" type="galaxy.datatypes.binary:Binary" mimetype="application/vnd.las" subclass="true" display_in_upload="true" description="The LAS (LASer) format is a file format designed for the interchange and archiving of Lidar point cloud data." description_url="https://www.loc.gov/preservation/digital/formats/fdd/fdd000418.shtml">
        <infer_from suffix="las" />
    </datatype>
    <datatype extension="laz" type="galaxy.datatypes.binary:Binary" mimetype="application/vnd.las" subclass="true" display_in_upload="true" description="LAZ is an open format for lossless compression of LAS." description_url="https://downloads.rapidlasso.de/doc/laszip.pdf">
        <infer_from suffix="laz" />
    </datatype>
    <datatype extension="d3_hierarchy" type="galaxy.datatypes.text:Json" mimetype="application/json" subclass="true" display_in_upload="true"/>
    <datatype extension="cytoscapejson" type="galaxy.datatypes.text:CytoscapeJson" mimetype="application/json" display_in_upload="true" description="Cytoscape JSON format for network visualization, typically containing 'nodes' and 'edges' in a JSON object." description_url="https://js.cytoscape.org/#notation/elements-json" />
    <datatype extension="freq.json" type="galaxy.datatypes.text:Json" mimetype="application/json" subclass="true" display_in_upload="True" description="A JSON-formatted array of objects containing longitude, latitude, and frequency attributes."/>
@@ -627,6 +633,7 @@
    <datatype extension="iqtree" type="galaxy.datatypes.text:IQTree">
        <infer_from suffix="iqtree" />
    </datatype>
    <datatype extension="beast.trees" type="galaxy.datatypes.data:Text" subclass="true" display_in_upload="true" decription="A BEAST specific NEXUS text file containing posterior tree samples generated by BEAST MCMC analyses."/>
    <datatype extension="mldist" type="galaxy.datatypes.mothur:SquareDistanceMatrix"/>
    <!-- Start RGenetics Datatypes -->
    <datatype extension="affybatch" type="galaxy.datatypes.genetics:Affybatch" display_in_upload="true"/>
+4 −2
Original line number Diff line number Diff line
@@ -2034,7 +2034,7 @@ class ToolModule(WorkflowModule):

    # ---- Saving in various forms ------------------------------------------

    def save_to_step(self, step, detached=False):
    def save_to_step(self, step: WorkflowStep, detached=False):
        super().save_to_step(step, detached=detached)
        step.tool_id = self.tool_id
        if self.tool:
@@ -2042,7 +2042,9 @@ class ToolModule(WorkflowModule):
        else:
            step.tool_version = self.tool_version
        if tool_uuid := getattr(self, "tool_uuid", None):
            step.dynamic_tool = self.trans.app.dynamic_tool_manager.get_tool_by_uuid(tool_uuid)
            tool = self.trans.app.toolbox.get_tool(tool_uuid=tool_uuid, user=self.trans.user)
            if tool:
                step.dynamic_tool_id = tool.dynamic_tool.id
        if not detached:
            for k, v in self.post_job_actions.items():
                pja = self.__to_pja(k, v, step)
+29 −0
Original line number Diff line number Diff line
@@ -25,8 +25,10 @@ from requests import (
)

from galaxy.exceptions import error_codes
from galaxy.tool_util_models import UserToolSource
from galaxy.util import UNKNOWN
from galaxy.util.unittest_utils import skip_if_github_down
from galaxy_test.api.test_tools import TOOL_WITH_SHELL_COMMAND
from galaxy_test.base import rules_test_data
from galaxy_test.base.populators import (
    DatasetCollectionPopulator,
@@ -8336,6 +8338,33 @@ outer_input:
                    history_id=history_id,
                )

    def test_user_defined_workflow_update(self):
        with self.dataset_populator.user_tool_execute_permissions():
            unprivileged_tool = self.dataset_populator.create_unprivileged_tool(
                UserToolSource(**TOOL_WITH_SHELL_COMMAND)
            )
            # Workflow doesn't matter, we're replacing it in the update
            workflow = self.workflow_populator.load_workflow_from_resource("test_workflow_pause")
            workflow_id = self.workflow_populator.create_workflow(workflow)
            update_response = self._update_workflow(
                workflow_id,
                {
                    "steps": {
                        "0": {
                            "content_id": "cat_user_defined",
                            "id": 1,
                            "input_connections": {"datasets": []},
                            "name": "Concatenate Files",
                            "tool_uuid": unprivileged_tool["uuid"],
                            "type": "tool",
                        }
                    },
                },
            )
            assert update_response.status_code == 200, update_response.text
            workflow = self.workflow_populator.download_workflow(workflow_id)
            assert workflow["steps"]["0"]["tool_representation"]["class"] == "GalaxyUserTool"

    def _invoke_paused_workflow(self, history_id):
        workflow = self.workflow_populator.load_workflow_from_resource("test_workflow_pause")
        workflow_id = self.workflow_populator.create_workflow(workflow)