'Boolean' parameter type misbehaves in tool tests if truevalue starts with hyphen?

classic Classic list List threaded Threaded
4 messages Options
| Threaded
Open this post in threaded view
|

'Boolean' parameter type misbehaves in tool tests if truevalue starts with hyphen?

Peter Briggs
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 [hidden email]
Bioinformatics Core Facility University of Manchester
B.1083 Michael Smith Bldg Tel: (0161) 2751482

___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: 'Boolean' parameter type misbehaves in tool tests if truevalue starts with hyphen?

Peter Cock
On Fri, May 8, 2015 at 3:05 PM, Peter Briggs
<[hidden email]> 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/samtools_bam2fq.xml

(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/
| Threaded
Open this post in threaded view
|

Re: 'Boolean' parameter type misbehaves in tool tests if truevalue starts with hyphen?

John Chilton-4
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/df4fdcb526df17094e03372a76763572f2095be7#commitcomment-11073612

-John

On Fri, May 8, 2015 at 10:16 AM, Peter Cock <[hidden email]> wrote:

> On Fri, May 8, 2015 at 3:05 PM, Peter Briggs
> <[hidden email]> 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/samtools_bam2fq.xml
>
> (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/
___________________________________________________________
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/
| Threaded
Open this post in threaded view
|

Re: 'Boolean' parameter type misbehaves in tool tests if truevalue starts with hyphen?

Peter Briggs
In reply to this post by Peter Cock
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 [hidden email]
Bioinformatics Core Facility University of Manchester
B.1083 Michael Smith Bldg Tel: (0161) 2751482


________________________________________
From: Peter Cock [[hidden email]]
Sent: Friday, May 08, 2015 3:16 PM
To: Peter Briggs
Cc: [hidden email]
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
<[hidden email]> 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/samtools_bam2fq.xml

(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/