| #!/usr/bin/env python3 | 
 |  | 
 | r""" | 
 | This module provides robot keyword execution functions such as run_key.. | 
 | """ | 
 |  | 
 | import gen_print as gp | 
 | from robot.libraries.BuiltIn import BuiltIn | 
 |  | 
 |  | 
 | def run_key(keyword_buf, quiet=None, test_mode=None, ignore=0): | 
 |     r""" | 
 |     Run the given keyword, return the status and the keyword return values. | 
 |  | 
 |     The advantage of using this function verses having robot simply run your keyword is the handling of | 
 |     parameters like quiet, test_mode and ignore. | 
 |  | 
 |     Description of arguments: | 
 |     keyword_buf                     The keyword string to be run. | 
 |     quiet                           Indicates whether this function should run the pissuing function to print | 
 |                                     'Issuing: <keyword string>' to stdout. | 
 |     test_mode                       If test_mode is set, this function will not actually run the command.  If | 
 |                                     quiet is 0, it will print a message indicating what it would have run | 
 |                                     (e.g. "Issuing: (test_mode) your command"). | 
 |     ignore                          Ignore errors from running keyword.  If this is 0, this function will | 
 |                                     fail with whatever error occurred when running the keyword. | 
 |  | 
 |     Example usage from a robot script: | 
 |  | 
 |     ${status}  ${ret_values}=  Run Key  My Keyword \ Arg1 \ Arg2 | 
 |  | 
 |     Note that to get robot to pass your command + args as a single string to this function, you must escape | 
 |     extra spaces with a backslash. | 
 |  | 
 |     Also note that ret_values is a python list: | 
 |     ret_values: | 
 |       ret_values[0]:    value1 | 
 |       ret_values[1]:    value2 | 
 |     """ | 
 |  | 
 |     # Set these vars to default values if they are None. | 
 |     quiet = int(gp.get_var_value(quiet, 0)) | 
 |     test_mode = int(gp.get_var_value(test_mode, 0)) | 
 |     ignore = int(ignore) | 
 |  | 
 |     # Convert the keyword_buf into a list split wherever 2 or more spaces are found. | 
 |     keyword_list = keyword_buf.split("  ") | 
 |     # Strip spaces from each argument to make the output look clean and uniform. | 
 |     keyword_list = [item.strip(" ") for item in keyword_list] | 
 |  | 
 |     if not quiet: | 
 |         # Join the list back into keyword_buf for the sake of output. | 
 |         keyword_buf = "  ".join(keyword_list) | 
 |         gp.pissuing(keyword_buf, test_mode) | 
 |  | 
 |     if test_mode: | 
 |         return "PASS", "" | 
 |  | 
 |     try: | 
 |         status, ret_values = BuiltIn().run_keyword_and_ignore_error( | 
 |             *keyword_list | 
 |         ) | 
 |     except Exception as my_assertion_error: | 
 |         status = "FAIL" | 
 |         ret_values = my_assertion_error.args[0] | 
 |  | 
 |     if status != "PASS": | 
 |         # Output the error message to stderr. | 
 |         BuiltIn().log_to_console(ret_values, stream="STDERR") | 
 |         if not ignore: | 
 |             # Fail with the given error message. | 
 |             BuiltIn().fail(ret_values) | 
 |  | 
 |     return status, ret_values | 
 |  | 
 |  | 
 | def run_key_u(keyword_buf, quiet=None, ignore=0): | 
 |     r""" | 
 |     Run keyword unconditionally (i.e. without regard to global test_mode setting). | 
 |  | 
 |     This function will simply call the run_key function passing on all of the callers parameters except | 
 |     test_mode which will be hard-coded to 0.  See run_key (above) for details. | 
 |  | 
 |     See the proglog of "run_key" function above for description of arguments. | 
 |     """ | 
 |  | 
 |     return run_key(keyword_buf, test_mode=0, quiet=quiet, ignore=ignore) |