19 from ..
import robotapi, utils
28 return self.__class__()
37 value = self.Window.Value
38 error = self._validate(value)
45 ret = wx.MessageBox(message, title, style=wx.ICON_ERROR)
57 time_tokens = utils.split_value(value)
60 timestr = time_tokens[0]
62 secs = utils.timestr_to_secs(timestr)
64 raise ValueError(
"Timestring must be over zero")
65 time_tokens[0] = utils.secs_to_timestr(secs)
66 except ValueError
as err:
67 if '${' not in timestr:
73 self.Window.SetValue(value)
77 SCALAR, DEFAULT, LIST, DICT = range(1, 5)
85 for arg
in utils.split_value(args_str)]
86 except ValueError
as e:
87 return "Invalid argument syntax '%s'" % str(e)
91 if robotapi.is_scalar_var(arg):
92 return ArgumentTypes.SCALAR
93 elif robotapi.is_scalar_var(arg.split(
"=")[0]):
94 return ArgumentTypes.DEFAULT
95 elif robotapi.is_list_var(arg):
96 return ArgumentTypes.LIST
97 elif robotapi.is_dict_var(arg):
98 return ArgumentTypes.DICT
100 raise ValueError(arg)
103 prev = ArgumentTypes.SCALAR
106 return (
"List and scalar arguments must be before named and "
107 "dictionary arguments")
115 _AbstractValidator.__init__(self)
123 return "%s cannot be empty" % self.
_field_name_field_name
130 NonEmptyValidator.__init__(self, field_name)
137 validity = NonEmptyValidator._validate(self, value)
138 if not self.
_is_dir_type_is_dir_type()
and not validity:
139 if value.lower() ==
'__init__':
140 return "Invalid suite file name \"%s\"" % value
147 if not os.path.isdir(value):
148 return "Chosen directory must exist"
155 path = os.path.normpath(value)
156 if os.path.exists(path):
157 return "Target file or directory must not exist"
158 parentdir, filename = os.path.split(path)
159 if "__init__" in filename:
160 parentdir = os.path.dirname(parentdir)
161 if not os.path.exists(parentdir):
162 return "Parent directory must exist"
169 _AbstractValidator.__init__(self)
177 if self.
_orig_name_orig_name
is not None and utils.eq(
178 name, self.
_orig_name_orig_name, ignore=[
'_']):
180 return self._validation_method(name).error_message
185 _validation_method = property
188 return self.
_controller_controller.validate_test_name
193 _validation_method = property
196 return self.
_controller_controller.validate_keyword_name
201 _validation_method = property
204 return self.
_controller_controller.validate_scalar_variable_name
209 _validation_method = property
212 return self.
_controller_controller.validate_list_variable_name
217 _validation_method = property
220 return self.
_controller_controller.validate_dict_variable_name
def _validate(self, args_str)
def _validate_argument_order(self, types)
def _validate(self, value)
def _validate(self, value)
def __init__(self, field_name)
def _validate(self, value)
def _validate(self, value)
def __init__(self, field_name, is_dir_type)
def _validate(self, value)
def _set_window_value(self, value)
Implements methods to keep wxPython happy and some helper methods.
def TransferToWindow(self)
def _show_error(self, message, title="Validation Error")
def _set_focus_to_text_control(self, ctrl)
def TransferFromWindow(self)
def _validate(self, name)
def __init__(self, controller, orig_name=None)