1*a2a553c5SMichael Walsh#!/usr/bin/env python 2*a2a553c5SMichael Walsh 3*a2a553c5SMichael Walshr""" 4*a2a553c5SMichael WalshThis module is the python counterpart to run_keyword.robot. 5*a2a553c5SMichael Walsh""" 6*a2a553c5SMichael Walsh 7*a2a553c5SMichael Walshimport gen_print as gp 8*a2a553c5SMichael Walshimport gen_robot_print as grp 9*a2a553c5SMichael Walshimport gen_robot_valid as grv 10*a2a553c5SMichael Walsh 11*a2a553c5SMichael Walshfrom robot.libraries.BuiltIn import BuiltIn 12*a2a553c5SMichael Walsh 13*a2a553c5SMichael Walsh 14*a2a553c5SMichael Walsh############################################################################### 15*a2a553c5SMichael Walshdef main_py(): 16*a2a553c5SMichael Walsh 17*a2a553c5SMichael Walsh r""" 18*a2a553c5SMichael Walsh Do main program processing. 19*a2a553c5SMichael Walsh """ 20*a2a553c5SMichael Walsh 21*a2a553c5SMichael Walsh setup() 22*a2a553c5SMichael Walsh 23*a2a553c5SMichael Walsh keyword_string = BuiltIn().get_variable_value("${keyword_string}") 24*a2a553c5SMichael Walsh lib_file_path = BuiltIn().get_variable_value("${lib_file_path}") 25*a2a553c5SMichael Walsh 26*a2a553c5SMichael Walsh cmd_buf = keyword_string.split(" ") 27*a2a553c5SMichael Walsh 28*a2a553c5SMichael Walsh if lib_file_path != "": 29*a2a553c5SMichael Walsh # We don't want global variable getting changed when an import is done 30*a2a553c5SMichael Walsh # so we'll save it and restore it. 31*a2a553c5SMichael Walsh quiet = int(BuiltIn().get_variable_value("${quiet}")) 32*a2a553c5SMichael Walsh if lib_file_path.endswith(".py"): 33*a2a553c5SMichael Walsh grp.rdprint_issuing("import_library(\"" + lib_file_path + "\")") 34*a2a553c5SMichael Walsh BuiltIn().import_library(lib_file_path) 35*a2a553c5SMichael Walsh else: 36*a2a553c5SMichael Walsh grp.rdprint_issuing("import_resource(\"" + lib_file_path + "\")") 37*a2a553c5SMichael Walsh BuiltIn().import_resource(lib_file_path) 38*a2a553c5SMichael Walsh BuiltIn().set_global_variable("${quiet}", quiet) 39*a2a553c5SMichael Walsh 40*a2a553c5SMichael Walsh error_message = grp.sprint_error_report("Keyword \"" + cmd_buf[0] + 41*a2a553c5SMichael Walsh "\" does not exist.\n") 42*a2a553c5SMichael Walsh BuiltIn().keyword_should_exist(cmd_buf[0], msg=error_message) 43*a2a553c5SMichael Walsh 44*a2a553c5SMichael Walsh grp.rqprint_issuing_keyword(cmd_buf) 45*a2a553c5SMichael Walsh status, output = BuiltIn().run_keyword_and_ignore_error(*cmd_buf) 46*a2a553c5SMichael Walsh if status != "PASS": 47*a2a553c5SMichael Walsh error_message = grp.sprint_error_report("\"" + cmd_buf[0] + 48*a2a553c5SMichael Walsh "\" failed with the" + 49*a2a553c5SMichael Walsh " following error:\n" + output) 50*a2a553c5SMichael Walsh if not quiet: 51*a2a553c5SMichael Walsh grp.rprint(error_message, 'STDERR') 52*a2a553c5SMichael Walsh BuiltIn().fail(error_message) 53*a2a553c5SMichael Walsh 54*a2a553c5SMichael Walsh if output is not None: 55*a2a553c5SMichael Walsh grp.rprint(output) 56*a2a553c5SMichael Walsh 57*a2a553c5SMichael Walsh############################################################################### 58*a2a553c5SMichael Walsh 59*a2a553c5SMichael Walsh 60*a2a553c5SMichael Walsh############################################################################### 61*a2a553c5SMichael Walshdef setup(): 62*a2a553c5SMichael Walsh 63*a2a553c5SMichael Walsh r""" 64*a2a553c5SMichael Walsh Do general program setup tasks. 65*a2a553c5SMichael Walsh """ 66*a2a553c5SMichael Walsh 67*a2a553c5SMichael Walsh grp.rqprintn() 68*a2a553c5SMichael Walsh 69*a2a553c5SMichael Walsh validate_parms() 70*a2a553c5SMichael Walsh 71*a2a553c5SMichael Walsh grp.rqprint_pgm_header() 72*a2a553c5SMichael Walsh 73*a2a553c5SMichael Walsh############################################################################### 74*a2a553c5SMichael Walsh 75*a2a553c5SMichael Walsh 76*a2a553c5SMichael Walsh############################################################################### 77*a2a553c5SMichael Walshdef validate_parms(): 78*a2a553c5SMichael Walsh 79*a2a553c5SMichael Walsh r""" 80*a2a553c5SMichael Walsh Validate all program parameters. 81*a2a553c5SMichael Walsh """ 82*a2a553c5SMichael Walsh 83*a2a553c5SMichael Walsh grv.rvalid_value("keyword_string") 84*a2a553c5SMichael Walsh 85*a2a553c5SMichael Walsh return True 86*a2a553c5SMichael Walsh 87*a2a553c5SMichael Walsh############################################################################### 88*a2a553c5SMichael Walsh 89*a2a553c5SMichael Walsh 90*a2a553c5SMichael Walsh############################################################################### 91*a2a553c5SMichael Walshdef program_teardown(): 92*a2a553c5SMichael Walsh 93*a2a553c5SMichael Walsh r""" 94*a2a553c5SMichael Walsh Clean up after this program. 95*a2a553c5SMichael Walsh """ 96*a2a553c5SMichael Walsh 97*a2a553c5SMichael Walsh grp.rqprint_pgm_footer() 98*a2a553c5SMichael Walsh 99*a2a553c5SMichael Walsh############################################################################### 100