diff --git a/lib/galaxy/tools/test.py b/lib/galaxy/tools/test.py index babdcb84fe2..07837255dc2 100644 --- a/lib/galaxy/tools/test.py +++ b/lib/galaxy/tools/test.py @@ -71,9 +71,8 @@ class ToolTestBuilder( object ): # No explicit value for param in test case, determine from default query_value = test_param.checked else: - # Test case supplied value, check cases against this. - query_value = string_as_bool( declared_value ) - matches_declared_value = lambda case_value: string_as_bool(case_value) == query_value + query_value = _process_bool_param_value( test_param, declared_value ) + matches_declared_value = lambda case_value: _process_bool_param_value( test_param, case_value ) == query_value elif isinstance(test_param, galaxy.tools.parameters.basic.SelectToolParameter): if declared_value is not None: # Test case supplied explicit value to check against. @@ -166,7 +165,8 @@ class ToolTestBuilder( object ): # as a new instance with value defined and hence enter # an infinite loop - hence the "case_value is not None" # check. - expanded_inputs[ case_context.for_state() ] = expanded_case_value + processed_value = _process_simple_value( value.test_param, expanded_case_value ) + expanded_inputs[ case_context.for_state() ] = processed_value elif isinstance( value, galaxy.tools.parameters.grouping.Section ): context = ParamContext( name=value.name, parent_context=parent_context ) for r_name, r_value in value.inputs.iteritems(): @@ -203,33 +203,8 @@ class ToolTestBuilder( object ): for ( name, value, extra ) in collection_def.collect_inputs(): require_file( name, value, extra, self.required_files ) processed_value = collection_def - elif isinstance( value, galaxy.tools.parameters.basic.SelectToolParameter ) and hasattr( value, 'static_options' ): - # Tests may specify values as either raw value or the value - # as they appear in the list - the API doesn't and shouldn't - # accept the text value - so we need to convert the text - # into the form value. - def process_param_value( param_value ): - found_value = False - value_for_text = None - if value.static_options: - for (text, opt_value, selected) in value.static_options: - if param_value == opt_value: - found_value = True - if value_for_text is None and param_value == text: - value_for_text = opt_value - if not found_value and value_for_text is not None: - processed_value = value_for_text - else: - processed_value = param_value - return processed_value - # Do replacement described above for lists or singleton - # values. - if isinstance( param_value, list ): - processed_value = map( process_param_value, param_value ) - else: - processed_value = process_param_value( param_value ) else: - processed_value = param_value + processed_value = _process_simple_value( value, param_value ) expanded_inputs[ context.for_state() ] = processed_value return expanded_inputs @@ -240,6 +215,54 @@ class ToolTestBuilder( object ): return require_file( name, value, extra, self.required_files ) +def _process_simple_value( param, param_value ): + if isinstance( param, galaxy.tools.parameters.basic.SelectToolParameter ) and hasattr( param, 'static_options' ): + # Tests may specify values as either raw value or the value + # as they appear in the list - the API doesn't and shouldn't + # accept the text value - so we need to convert the text + # into the form value. + def process_param_value( param_value ): + found_value = False + value_for_text = None + if param.static_options: + for (text, opt_value, selected) in param.static_options: + if param_value == opt_value: + found_value = True + if value_for_text is None and param_value == text: + value_for_text = opt_value + if not found_value and value_for_text is not None: + processed_value = value_for_text + else: + processed_value = param_value + return processed_value + # Do replacement described above for lists or singleton + # values. + if isinstance( param_value, list ): + processed_value = map( process_param_value, param_value ) + else: + processed_value = process_param_value( param_value ) + elif isinstance( param, galaxy.tools.parameters.basic.BooleanToolParameter ): + # Like above, tests may use the tool define values of simply + # true/false. + processed_value = _process_bool_param_value( param, param_value ) + else: + processed_value = param_value + return processed_value + + +def _process_bool_param_value( param, param_value ): + assert isinstance( param, galaxy.tools.parameters.basic.BooleanToolParameter ) + if isinstance( param_value, list ): + param_value = param_value[0] + if param.truevalue == param_value: + processed_value = True + elif param.falsevalue == param_value: + processed_value = False + else: + processed_value = string_as_bool( param_value ) + return processed_value + + @nottest def test_data_iter( required_files ): for fname, extra in required_files: diff --git a/test/functional/tools/boolean_conditional.xml b/test/functional/tools/boolean_conditional.xml new file mode 100644 index 00000000000..df699e267a8 --- /dev/null +++ b/test/functional/tools/boolean_conditional.xml @@ -0,0 +1,53 @@ + + + echo "$p1.p1val" >> $out_file1; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/functional/tools/samples_tool_conf.xml b/test/functional/tools/samples_tool_conf.xml index deabd1d0062..68c81052ee7 100644 --- a/test/functional/tools/samples_tool_conf.xml +++ b/test/functional/tools/samples_tool_conf.xml @@ -3,6 +3,7 @@ + diff --git a/test/functional/tools/simple_constructs.xml b/test/functional/tools/simple_constructs.xml index d67c0c282ee..6fdde0ff154 100644 --- a/test/functional/tools/simple_constructs.xml +++ b/test/functional/tools/simple_constructs.xml @@ -61,5 +61,17 @@ + + + + + + + + + + + + diff --git a/tool-data/shared/gbrowse/gbrowse_build_sites.txt b/tool-data/shared/gbrowse/gbrowse_build_sites.txt index 289af693b69..df21421f090 100644 --- a/tool-data/shared/gbrowse/gbrowse_build_sites.txt +++ b/tool-data/shared/gbrowse/gbrowse_build_sites.txt @@ -18,7 +18,7 @@ wormbase_ws225 WormBase WS225 http://ws225.wormbase.org/db/gb2/gbrowse/ caeAng1, tair tair http://arabidopsis.org/cgi-bin/gbrowse/ arabidopsis_tair8,arabidopsis,Arabidopsis_thaliana_TAIR10 arabidopsis_tair8,arabidopsis_tair9,arabidopsis #modENCODE -modencode modENCODE http://modencode.oicr.on.ca/fgb2/gbrowse/ ce6,dm2 worm,fly +modencode modENCODE http://gbrowse.modencode.org/fgb2/gbrowse/ ce10,dm3 worm,fly #Saccharomyces Genome Database (SGD) sgd_yeast Saccharomyces Genome Database http://browse.yeastgenome.org/fgb2/gbrowse/ Saccharomyces_cerevisiae_S288C_SGD2010 scgenome diff --git a/tools/data_source/fly_modencode.xml b/tools/data_source/fly_modencode.xml index 7b14302ebec..3d3f5b8e533 100644 --- a/tools/data_source/fly_modencode.xml +++ b/tools/data_source/fly_modencode.xml @@ -1,21 +1,21 @@ - + server data_source.py $output $__app__.config.output_size_limit - + go to modENCODE fly server $GALAXY_URL - + - + - + diff --git a/tools/data_source/worm_modencode.xml b/tools/data_source/worm_modencode.xml index 074792cccf7..b021f4a0ddf 100644 --- a/tools/data_source/worm_modencode.xml +++ b/tools/data_source/worm_modencode.xml @@ -1,21 +1,21 @@ - + server data_source.py $output $__app__.config.output_size_limit - + go to modENCODE worm server $GALAXY_URL - + - + - +