From 0e511b78a4d515f5b8c454e96683b2dc76b1f8df Mon Sep 17 00:00:00 2001 From: guerler Date: Fri, 20 May 2016 13:12:22 -0400 Subject: [PATCH 1/4] Remove assumed parameter value from error message --- lib/galaxy/tools/parameters/basic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index a13f5894178..790a6489b5c 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -1484,7 +1484,7 @@ class DrillDownSelectToolParameter( SelectToolParameter ): value = value.split( "\n" ) return value if not value and not self.optional: - raise ValueError( "An invalid option was selected for %s, 'None', please verify" % (self.name) ) + raise ValueError( "An invalid option was selected for %s, please verify." % (self.name) ) if not value: return None if not isinstance( value, list ): From 4a2e67036127d8088b96f7f767907f76f3c9012d Mon Sep 17 00:00:00 2001 From: guerler Date: Fri, 20 May 2016 13:18:01 -0400 Subject: [PATCH 2/4] Avoid empty strings when converting values to display text --- lib/galaxy/tools/parameters/basic.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 790a6489b5c..e1e1d72f355 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -171,7 +171,9 @@ class ToolParameter( object, Dictifiable ): Convert a value to a text representation suitable for displaying to the user """ - return unicodify( value ) + if value: + return unicodify( value ) + return "Not available." def to_param_dict_string( self, value, other_values={} ): """Called via __str__ when used in the Cheetah template""" @@ -986,7 +988,9 @@ class SelectToolParameter( ToolParameter ): for t, v, s in options: if v in value: rval.append( t ) - return "\n".join( rval ) + if rval: + return "\n".join( rval ) + return "Nothing selected." def get_dependencies( self ): """ @@ -1583,7 +1587,9 @@ class DrillDownSelectToolParameter( SelectToolParameter ): rval = [] for val in value: rval.append( get_option_display( val, self.options ) or val ) - return "\n".join( map( str, rval ) ) + if rval: + return "\n".join( map( str, rval ) ) + return "Nothing selected." def get_dependencies( self ): """ @@ -1954,7 +1960,7 @@ class DataToolParameter( BaseDataToolParameter ): return ", ".join( [ "%s: %s" % ( item.hid, item.name ) for item in value ] ) except: pass - return "No dataset" + return "No dataset." def validate( self, value, trans=None ): dataset_count = 0 From bfca29a98a1fe26131bcf3b181e0b65ad82130c6 Mon Sep 17 00:00:00 2001 From: guerler Date: Fri, 20 May 2016 13:18:52 -0400 Subject: [PATCH 3/4] Add proper validation error for missing single values in data tool parameters --- lib/galaxy/tools/parameters/basic.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index e1e1d72f355..6e789a81e43 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -1943,8 +1943,11 @@ class DataToolParameter( BaseDataToolParameter ): raise ValueError( "The previously selected dataset has entered an unusable state" ) if not self.multiple: if len( values ) > 1: - raise ValueError( "More than one dataset supplied to single input dataset parameter.") - rval = values[ 0 ] + raise ValueError( "More than one dataset supplied to single input dataset parameter." ) + if len( values ) > 0: + rval = values[ 0 ] + else: + raise ValueError( "Invalid dataset supplied to single input dataset parameter." ) return rval def to_param_dict_string( self, value, other_values={} ): From 5918b054130484ec253c0d18b3901141b8c903e3 Mon Sep 17 00:00:00 2001 From: guerler Date: Fri, 20 May 2016 14:11:26 -0400 Subject: [PATCH 4/4] Show default value in error warning only if its different than the initial value --- lib/galaxy/tools/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index f2b999b8d48..7b50d4c8005 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -1240,9 +1240,10 @@ class Tool( object, Dictifiable ): if error: if update_values: try: + previous_value = value value = input.get_initial_value( request_context, context ) if not prefixed_name.startswith( '__' ): - messages[ prefixed_name ] = '%s Using default: \'%s\'.' % ( error, value ) + messages[ prefixed_name ] = error if previous_value == value else '%s Using default: \'%s\'.' % ( error, value ) parent[ input.name ] = value except: messages[ prefixed_name ] = 'Attempt to replace invalid value for \'%s\' failed.' % ( prefixed_label )