mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 13:50:20 +08:00
Case made well by @erasche on #1746, fixes #1746. To resolve this more correctly (and many other potential type problems) - the workflow editor should be significantly reworked to track the datatype (or a range of datatypes) on each terminal (the way it does for collection mapping information). The change would be a weeks worth of development effort and inappropriate to apply to a release branch.
73 lines
3.2 KiB
XML
73 lines
3.2 KiB
XML
<tool id="output_format" name="output_format" version="1.0.0">
|
|
<command>
|
|
echo "test" > 1;
|
|
echo "test" > 2;
|
|
echo "test" > 3;
|
|
echo "test" > 4;
|
|
echo "test" > 5;
|
|
</command>
|
|
<inputs>
|
|
<param name="input_data_1" type="data" format="data" label="input_data_1" />
|
|
<param name="input_data_2" type="data" format="data" label="input_data_2" />
|
|
<param name="input_text" type="text" value="1" label="input_text" />
|
|
</inputs>
|
|
<outputs>
|
|
<data format="txt" from_work_dir="1" name="direct_output" />
|
|
<!-- TODO: fixme, following input gets random type fastqsanger or
|
|
fastqsolexa. -->
|
|
<data format="input" from_work_dir="2" name="input_based_output" />
|
|
<data format="txt" from_work_dir="3" name="format_source_1_output" format_source="input_data_1" />
|
|
<data format="txt" from_work_dir="4" name="format_source_2_output" format_source="input_data_2" />
|
|
<data format="txt" from_work_dir="5" name="change_format_output">
|
|
<change_format>
|
|
<when input="input_text" value="foo" format="fastqsolexa" />
|
|
<when input="input_text" value="bar" format="fastqillumina" />
|
|
</change_format>
|
|
</data>
|
|
</outputs>
|
|
<tests>
|
|
<test>
|
|
<param name="input_data_1" value="1.fastqsanger" ftype="fastqsanger" />
|
|
<param name="input_data_2" value="1.fastqsolexa" ftype="fastqsolexa" />
|
|
<param name="input_text" value="foo" />
|
|
<output name="direct_output" ftype="txt">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
<!-- In this case input_based_output ftype is "randomly" either
|
|
fastqsanger or fastqsolexa -->
|
|
<output name="format_source_1_output" ftype="fastqsanger">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
<output name="format_source_2_output" ftype="fastqsolexa">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
<!-- input_text == foo => format set to fastsolexa -->
|
|
<output name="change_format_output" ftype="fastqsolexa">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
</test>
|
|
<test>
|
|
<param name="input_data_1" value="1.fastqsanger" ftype="fastqsanger" />
|
|
<param name="input_data_2" value="1.fastqsanger" ftype="fastqsanger" />
|
|
<param name="input_text" value="bar" />
|
|
<output name="input_based_output" ftype="fastqsanger">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
<!-- input_text == bar => format set to fastqillumina -->
|
|
<output name="change_format_output" ftype="fastqillumina">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
</test>
|
|
<test>
|
|
<param name="input_data_1" value="1.fastqsanger" ftype="fastqsanger" />
|
|
<param name="input_data_2" value="1.fastqsanger" ftype="fastqsanger" />
|
|
<param name="input_text" value="not_foo_or_bar" />
|
|
<!-- input_text doesn't match any when, default to explicitly declared
|
|
type. -->
|
|
<output name="change_format_output" ftype="txt">
|
|
<assert_contents><has_line line="test" /></assert_contents>
|
|
</output>
|
|
</test>
|
|
</tests>
|
|
</tool>
|