diff options
Diffstat (limited to 'scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_types.py')
-rw-r--r-- | scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_types.py | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_types.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_types.py index aa6c4218..a60a7ede 100644 --- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_types.py +++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_types.py @@ -50,11 +50,25 @@ class RC(): return (e if len(e) != 1 else e[0]) def __str__ (self): - s = "" - for x in self.rc_list: - if x.data: - s += format_text("\n{0}".format(x.data), 'bold') - return s + if self.good(): + s = "" + for x in self.rc_list: + if x.data: + s += format_text("\n{0}".format(x.data), 'bold') + return s + else: + show_count = 10 + err_list = [] + err_count = 0 + for x in filter(len, listify(self.err())): + err_count += 1 + if len(err_list) < show_count: + err_list.append(format_text(x, 'bold')) + s = '\n' if len(err_list) > 1 else '' + if err_count > show_count: + s += format_text('Occurred %s errors, showing first %s:\n' % (err_count, show_count), 'bold') + s += '\n'.join(err_list) + return s def __iter__(self): return self.rc_list.__iter__() @@ -135,6 +149,12 @@ def validate_type(arg_name, arg, valid_types): else: raise STLError('validate_type: valid_types should be type or list or tuple of types') + +def validate_choice (arg_name, arg, choices): + if arg is not None and not arg in choices: + raise STLError("validate_choice: argument '{0}' can only be one of '{1}'".format(arg_name, choices)) + + # throws STLError if not exactly one argument is present def verify_exclusive_arg (args_list): if not (len(list(filter(lambda x: x is not None, args_list))) == 1): |