Validation of list args for valid_values()
Added code to ensure that valid_values and invalid_values are lists.
If they are not, the user can get unexpected results.
Example:
var1 = 'enabled'
valid_value(var1, valid_values='enableddd')
In this case, valid_values is a string so when the function does this:
if var1 in valid_values:
The answer will be "yes" so will will get an incorrect validation.
The correct invocation should be this:
valid_value(var1, valid_values=['enableddd'])
Which correctly yields a failure:
var1: enabled <str>
It must be one of the following values:
valid_values: <list>
[0]: enableddd <str>
Change-Id: I2d10a00a4cc372af4c2eacc0dc33afbaa0ccf3a7
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/lib/gen_valid.py b/lib/gen_valid.py
index 36a63db..e23bde1 100755
--- a/lib/gen_valid.py
+++ b/lib/gen_valid.py
@@ -230,6 +230,14 @@
error_message += gp.sprint_var(valid_values)
return process_error_message(error_message)
+ error_message = valid_type(valid_values, list, var_name='valid_values')
+ if error_message:
+ return process_error_message(error_message)
+
+ error_message = valid_type(invalid_values, list, var_name='invalid_values')
+ if error_message:
+ return process_error_message(error_message)
+
if len_valid_values > 0:
# Processing the valid_values list.
if var_value in valid_values: