New valid_length and fix valid_range
- New valid_length function
- Also fixed some errors in valid_range
Change-Id: I1a9856ee796388d189060f9b860cd88ff3e9e16c
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/lib/gen_robot_valid.py b/lib/gen_robot_valid.py
index 556561d..160da0c 100755
--- a/lib/gen_robot_valid.py
+++ b/lib/gen_robot_valid.py
@@ -214,6 +214,14 @@
process_error_message(error_message)
+def valid_length(var_name, *args, **kwargs):
+
+ var_value, args, kwargs = valid_init(var_name, *args, **kwargs)
+ error_message = \
+ gv.valid_length(var_value, *args, var_name=var_name, **kwargs)
+ process_error_message(error_message)
+
+
# Modify the validation function docstrings by calling customize_doc_string
# for each function in the func_names list.
func_names = [
diff --git a/lib/gen_valid.py b/lib/gen_valid.py
index 53466dc..1faf3a7 100755
--- a/lib/gen_valid.py
+++ b/lib/gen_valid.py
@@ -310,11 +310,11 @@
"""
error_message = ""
- if not lower and not upper:
+ if lower is None and upper is None:
return process_error_message(error_message)
- if not lower and var_value <= upper:
+ if lower is None and var_value <= upper:
return process_error_message(error_message)
- if not upper and var_value >= lower:
+ if upper is None and var_value >= lower:
return process_error_message(error_message)
if lower and upper:
if lower > upper:
@@ -592,6 +592,37 @@
return process_error_message(error_message)
+def valid_length(var_value, min_length=None, max_length=None, *args, **kwargs):
+ r"""
+ The variable value is valid if it is an object (e.g. list, dictionary)
+ whose length is within the specified range.
+
+ Description of argument(s):
+ var_value The value being validated.
+ min_length The minimum length of the object. If not
+ None, the length of var_value must be
+ greater than or equal to min_length.
+ max_length The maximum length of the object. If not
+ None, the length of var_value must be less
+ than or equal to min_length.
+ """
+
+ error_message = ""
+ length = len(var_value)
+ error_message = valid_range(length, min_length, max_length)
+ if error_message:
+ var_name = get_var_name(*args, **kwargs)
+ error_message = "The length of the following object is not within the"
+ error_message += " expected range:\n"
+ error_message += gp.sprint_var(length)
+ error_message += gp.sprint_varx(var_name, var_value, gp.blank())
+ error_message += "\n"
+ error_message += gp.sprint_vars(min_length, max_length)
+ return process_error_message(error_message)
+
+ return process_error_message(error_message)
+
+
# Modify selected function docstrings by adding headers/footers.
func_names = [