1#!/usr/bin/env python 2 3r""" 4This file contains functions useful for validating variables in robot. 5""" 6 7import gen_robot_print as grp 8import gen_valid as gv 9 10from robot.libraries.BuiltIn import BuiltIn 11from robot.api import logger 12 13 14def rvalid_value(var_name, 15 invalid_values=[], 16 valid_values=[]): 17 18 r""" 19 Validate a robot value. 20 21 This function is the robot wrapper for gen_robot_print.svalid_value. 22 23 Description of arguments: 24 var_name The name of the variable whose value is to 25 be validated. 26 invalid_values A list of invalid values. If var_value is 27 equal to any of these, it is invalid. 28 Note that if you specify anything for 29 invalid_values (below), the valid_values 30 list is not even processed. 31 valid_values A list of invalid values. var_value must 32 be equal to one of these values to be 33 considered valid. 34 35 Examples of robot calls and corresponding output: 36 37 Robot code... 38 rvalid_value MY_PARM 39 40 Output... 41 #(CDT) 2016/11/02 10:04:20 - **ERROR** Variable "MY_PARM" not found (i.e. 42 #it's undefined). 43 44 or if it is defined but blank: 45 46 Output... 47 #(CDT) 2016/11/02 10:14:24 - **ERROR** The following variable has an 48 #invalid value: 49 MY_PARM: 50 51 It must NOT be one of the following values: 52 invalid_values: 53 invalid_values[0]: <blank> 54 55 Robot code... 56 ${invalid_values}= Create List one two three 57 ${MY_PARM}= Set Variable one 58 rvalid_value MY_PARM invalid_values=${invalid_values} 59 60 Output... 61 #(CDT) 2016/11/02 10:20:05 - **ERROR** The following variable has an 62 #invalid value: 63 MY_PARM: one 64 65 It must NOT be one of the following values: 66 invalid_values: 67 invalid_values[0]: one 68 invalid_values[1]: two 69 invalid_values[2]: three 70 71 """ 72 73 # Note: get_variable_value() seems to have no trouble with local variables. 74 var_value = BuiltIn().get_variable_value("${" + var_name + "}") 75 76 if var_value is None: 77 var_value = "" 78 error_message = "Variable \"" + var_name +\ 79 "\" not found (i.e. it's undefined).\n" 80 else: 81 error_message = gv.svalid_value(var_value, invalid_values, 82 valid_values, var_name) 83 if not error_message == "": 84 error_message = grp.sprint_error_report(error_message) 85 BuiltIn().fail(error_message) 86 87 88def rvalid_integer(var_name): 89 90 r""" 91 Validate a robot integer. 92 93 This function is the robot wrapper for gen_robot_print.svalid_integer. 94 95 Description of arguments: 96 var_name The name of the variable whose value is to 97 be validated. 98 99 Examples of robot calls and corresponding output: 100 101 Robot code... 102 Rvalid Integer MY_PARM 103 104 Output... 105 #(CDT) 2016/11/02 10:44:43 - **ERROR** Variable "MY_PARM" not found (i.e. 106 #it's undefined). 107 108 or if it is defined but blank: 109 110 Output... 111 #(CDT) 2016/11/02 10:45:37 - **ERROR** Invalid integer value: 112 MY_PARM: <blank> 113 114 Robot code... 115 ${MY_PARM}= Set Variable HELLO 116 Rvalid Integer MY_PARM 117 118 Output... 119 #(CDT) 2016/11/02 10:46:18 - **ERROR** Invalid integer value: 120 MY_PARM: HELLO 121 122 """ 123 124 # Note: get_variable_value() seems to have no trouble with local variables. 125 var_value = BuiltIn().get_variable_value("${" + var_name + "}") 126 127 if var_value is None: 128 var_value = "" 129 error_message = "Variable \"" + var_name +\ 130 "\" not found (i.e. it's undefined).\n" 131 else: 132 error_message = gv.svalid_integer(var_value, var_name) 133 if not error_message == "": 134 error_message = grp.sprint_error_report(error_message) 135 BuiltIn().fail(error_message) 136