view disambiguate_cond.xml @ 1:6fc62e74d7a5

Update disambig cond.
author John Chilton <jmchilton@gmail.com>
date Thu, 18 Feb 2016 12:56:45 +0000
parents 5f452975cfb4
children d372217872de
line wrap: on
line source

<tool id="disambiguate_cond" name="disambiguate_cond">
    <command>
        echo "$p1.p1v $p2.p2v $p3.p3v" > $out_file1; cat "$files.p4.file" >> $out_file1;
    </command>
    <inputs>
        <conditional name="p1">
            <param type="boolean" name="use" />
            <when value="true">
                <param name="p1v" value="4" type="integer" />
            </when>
            <when value="false">
                <param name="p1v" value="7" type="integer" />
            </when>
        </conditional>
        <conditional name="p2">
            <param type="boolean" name="use" label="use p2" />
            <when value="true">
                <param name="p2v" value="4" type="integer" />
            </when>
            <when value="false">
                <param name="p2v" value="7" type="integer" />
            </when>            
        </conditional>
        <conditional name="p3">
            <param type="boolean" name="use" />
            <when value="true">
                <param name="p3v" value="4" type="integer" />
            </when>
            <when value="false">
                <param name="p3v" value="7" type="integer" />
            </when>            
        </conditional>
        <conditional name="files">
            <param name="attach_files" type="boolean" checked="true" />
            <when value="true">
                <conditional name="p4">
                    <param type="boolean" name="use" />
                    <when value="true">
                        <param type="data" name="file" />
                    </when>
                </conditional>
            </when>
        </conditional>               
    </inputs>
    <outputs>
        <data name="out_file1" format="txt" />
    </outputs>
    <tests interactor="api">
        <!-- Can use nested conditional blocks as shown below to disambiguate
             various nested parameters. -->
        <test>
            <conditional name="p1">
                <param name="use" value="False"/>
            </conditional>
            <conditional name="p2">
                <param name="use" value="True"/>
            </conditional>
            <conditional name="p3">
                <param name="use" value="False"/>
            </conditional>            
            <conditional name="files">
                <param name="attach_files" value="True" />
                <conditional name="p4">
                    <param name="use" value="True"/>
                    <param name="file" value="simple_line_alternative.txt" />
                </conditional>
            </conditional>
            <output name="out_file1">
                <assert_contents>
                    <has_line line="7 4 7" />
                    <has_line line="This is a different line of text." />
                </assert_contents>
            </output>
        </test>
        <!-- Can also use a more concise, flat verison of this, but it the
             above version is more clear and should be considered preferable.
        -->
        <test>
            <param name="p1|use" value="True"/>
            <param name="p2|use" value="False"/>
            <param name="p3|use" value="True"/>
            <param name="p4|use" value="True" />
            <!-- Only need to specify enough of a suffix to disambiguate,
                 but don't do this - it is too clever. -->
            <param name="p4|file" value="simple_line.txt" />
            <output name="out_file1">
                <assert_contents>
                    <has_line line="4 7 4" />
                    <has_line line="This is a line of text." />
                </assert_contents>
            </output>
        </test>
    </tests>
</tool>