Unverified Commit 9b43bf58 authored by Björn Grüning's avatar Björn Grüning Committed by GitHub
Browse files

Merge pull request #19301 from mvdbeek/implicit_dataset_as_input

[24.1] Record implicitly converted dataset as input dataset
parents 058d2377 a75bca59
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -847,7 +847,11 @@ class Data(metaclass=DataMeta):
        job, converted_datasets, *_ = converter.execute(
            trans, incoming=params, set_output_hid=visible, history=history, flush_job=False
        )
        # We should only have a single converted output, but let's be defensive here
        n_converted_datasets = len(converted_datasets)
        for converted_dataset in converted_datasets.values():
            if converted_dataset.extension == "auto" and n_converted_datasets == 1:
                converted_dataset.extension = target_type
            original_dataset.attach_implicitly_converted_dataset(trans.sa_session, converted_dataset, target_type)
        trans.app.job_manager.enqueue(job, tool=converter)
        if len(params) > 0:
+18 −0
Original line number Diff line number Diff line
@@ -2511,6 +2511,24 @@ class TestToolsApi(ApiTestCase, TestsTools):
                exception_raised = e
            assert exception_raised, "Expected invalid column selection to fail job"

    @skip_without_tool("implicit_conversion_format_input")
    def test_implicit_conversion_input_dataset_tracking(self):
        with self.dataset_populator.test_history() as history_id:
            compressed_path = self.test_data_resolver.get_filename("1.fastqsanger.gz")
            with open(compressed_path, "rb") as fh:
                dataset = self.dataset_populator.new_dataset(
                    history_id, content=fh, file_type="fastqsanger.gz", wait=True
                )
            outputs = self._run(
                "Grep1", history_id=history_id, inputs={"data": {"src": "hda", "id": dataset["id"]}}, assert_ok=True
            )
            job_details = self.dataset_populator.get_job_details(outputs["jobs"][0]["id"], full=True).json()
            assert job_details["inputs"]["input"]["id"] != dataset["id"]
            converted_input = self.dataset_populator.get_history_dataset_details(
                history_id=history_id, content_id=job_details["inputs"]["input"]["id"]
            )
            assert converted_input["extension"] == "fastqsanger"

    @skip_without_tool("column_multi_param")
    def test_implicit_conversion_and_reduce(self):
        with self.dataset_populator.test_history() as history_id: