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