Hello
I'm currently writing tests for a tool and think I've found a situation where the behaviour of the boolean parameter type does not seem correct within the test environment.
The tool defines the following boolean parameter:
<param name="spmr" type="boolean" truevalue="--SPMR" falsevalue="" checked="False" ... />
and accesses its value in the <command> tag using:
-B $spmr
i.e. if the boolean is true then this should output "-B --SPMR", if not then it should output "-B ".
This appears to work as expected when the tool is installed and used interactively. But when running the tests the 'falsevalue' is always returned, even if the value is set to the 'truevalue' in the tests i.e.:
<param name="spmr" value="--SPMR" />
and
<param name="spmr" value="" />
both return "-B ".
More generally: I've written a small tool to investigate the issue, and it appears that the errant behaviour only manifests when the 'truevalue' starts with a hyphen (e.g. using "-Yes" is broken, but "Yes" is okay).
The demo tool is available via
https://gist.github.com/pjbriggs/5bfbcf22f72e0266e61
and I've been using planemo v0.7.0 to run the tests ("planemo t --install_galaxy boolean_test_issue.xml").
Have I done something wrong here or is this a genuine bug?
Thanks for your help, best wishes
Peter
-- Peter Briggs peter.briggs@manchester.ac.uk Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482
On Fri, May 8, 2015 at 3:05 PM, Peter Briggs peter.briggs@manchester.ac.uk wrote:
Hello
I'm currently writing tests for a tool and think I've found a situation where the behaviour of the boolean parameter type does not seem correct within the test environment.
The tool defines the following boolean parameter:
<param name="spmr" type="boolean" truevalue="--SPMR" falsevalue="" checked="False" ... />
and accesses its value in the <command> tag using:
-B $spmr
i.e. if the boolean is true then this should output "-B --SPMR", if not then it should output "-B ".
This appears to work as expected when the tool is installed and used interactively. But when running the tests the 'falsevalue' is always returned, even if the value is set to the 'truevalue' in the tests i.e.:
<param name="spmr" value="--SPMR" />
and
<param name="spmr" value="" />
both return "-B ".
I think you may need to set the value to true/false here, e.g.
https://github.com/peterjc/pico_galaxy/blob/master/tools/samtools_bam2fq/sam...
(It would be clearer if the test framework insisted on this, but it may be allowing the truevalue or falsevalue to be used - at least when they don't start with a minus sign?)
Peter
I am with Peter that the best thing to do is probably to specify "true" or "false". We just had a similar report from Bjoern though - the thinking being that this was probably allowed in the past (using the truevalue/falsevalue) but Galaxy lost that functionality - https://trello.com/c/iGk3f1pE.
https://github.com/bgruening/galaxytools/commit/df4fdcb526df17094e03372a7676...
-John
On Fri, May 8, 2015 at 10:16 AM, Peter Cock p.j.a.cock@googlemail.com wrote:
On Fri, May 8, 2015 at 3:05 PM, Peter Briggs peter.briggs@manchester.ac.uk wrote:
Hello
I'm currently writing tests for a tool and think I've found a situation where the behaviour of the boolean parameter type does not seem correct within the test environment.
The tool defines the following boolean parameter:
<param name="spmr" type="boolean" truevalue="--SPMR" falsevalue="" checked="False" ... />
and accesses its value in the <command> tag using:
-B $spmr
i.e. if the boolean is true then this should output "-B --SPMR", if not then it should output "-B ".
This appears to work as expected when the tool is installed and used interactively. But when running the tests the 'falsevalue' is always returned, even if the value is set to the 'truevalue' in the tests i.e.:
<param name="spmr" value="--SPMR" />
and
<param name="spmr" value="" />
both return "-B ".
I think you may need to set the value to true/false here, e.g.
https://github.com/peterjc/pico_galaxy/blob/master/tools/samtools_bam2fq/sam...
(It would be clearer if the test framework insisted on this, but it may be allowing the truevalue or falsevalue to be used - at least when they don't start with a minus sign?)
Peter ___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at: https://lists.galaxyproject.org/
To search Galaxy mailing lists use the unified search at: http://galaxyproject.org/search/mailinglists/
Hello Peter C.
Thanks for the prompt response - yes, using 'true' and 'false' in the tests seems to work for my simple example (as do 'True' and 'False').
However I suspect that there is something else going on in the real tool that I'm trying to test, as I still can't get this to work - so I'm going to have to keep investigating. At least now I know that I'm setting the booleans properly in the tests (and will add that to my list of gotchas).
Thanks again for your help, best wishes
Peter
-- Peter Briggs peter.briggs@manchester.ac.uk Bioinformatics Core Facility University of Manchester B.1083 Michael Smith Bldg Tel: (0161) 2751482
________________________________________ From: Peter Cock [p.j.a.cock@googlemail.com] Sent: Friday, May 08, 2015 3:16 PM To: Peter Briggs Cc: galaxy-dev@lists.galaxyproject.org Subject: Re: [galaxy-dev] 'Boolean' parameter type misbehaves in tool tests if truevalue starts with hyphen?
On Fri, May 8, 2015 at 3:05 PM, Peter Briggs peter.briggs@manchester.ac.uk wrote:
Hello
I'm currently writing tests for a tool and think I've found a situation where the behaviour of the boolean parameter type does not seem correct within the test environment.
The tool defines the following boolean parameter:
<param name="spmr" type="boolean" truevalue="--SPMR" falsevalue="" checked="False" ... />
and accesses its value in the <command> tag using:
-B $spmr
i.e. if the boolean is true then this should output "-B --SPMR", if not then it should output "-B ".
This appears to work as expected when the tool is installed and used interactively. But when running the tests the 'falsevalue' is always returned, even if the value is set to the 'truevalue' in the tests i.e.:
<param name="spmr" value="--SPMR" />
and
<param name="spmr" value="" />
both return "-B ".
I think you may need to set the value to true/false here, e.g.
https://github.com/peterjc/pico_galaxy/blob/master/tools/samtools_bam2fq/sam...
(It would be clearer if the test framework insisted on this, but it may be allowing the truevalue or falsevalue to be used - at least when they don't start with a minus sign?)
Peter
galaxy-dev@lists.galaxyproject.org