Exemplo n.º 1
0
 def test_is_list_variable(self):
     for ok in LISTS:
         assert is_list_variable(ok)
         assert not is_list_variable(ok + '[item]')
         assert not is_list_variable(' ' + ok)
         assert not is_list_variable(ok + '=')
     for nok in NOKS + SCALARS + DICTS:
         assert not is_list_variable(nok)
Exemplo n.º 2
0
 def test_is_list_variable(self):
     for ok in LISTS:
         assert is_list_variable(ok)
         assert search_variable(ok).is_list_variable()
         assert is_list_variable(ok + '[item]')
         assert not is_list_variable(' ' + ok)
         assert not is_list_variable(ok + '=')
     for nok in NOKS + SCALARS + DICTS:
         assert not is_list_variable(nok)
         assert not search_variable(nok, ignore_errors=True).is_list_variable()
 def validate(self, positional, named, dryrun=False):
     if dryrun and any(is_list_variable(arg) for arg in positional):
         return
     named = set(name for name, value in named)
     self._validate_no_multiple_values(positional, named, self._argspec)
     self._validate_positional_limits(positional, named, self._argspec)
     self._validate_no_mandatory_missing(positional, named, self._argspec)
     self._validate_no_named_only_missing(named, self._argspec)
     self._validate_no_extra_named(named, self._argspec)
Exemplo n.º 4
0
 def _split_run_kw_if_args(self, given_args, control_word, required_after):
     index = list(given_args).index(control_word)
     expr_and_call = given_args[:index]
     remaining = given_args[index + 1:]
     if not (self._validate_kw_call(expr_and_call)
             and self._validate_kw_call(remaining, required_after)):
         raise DataError("Invalid 'Run Keyword If' usage.")
     if is_list_variable(expr_and_call[0]):
         return (), remaining
     return expr_and_call[1:], remaining
Exemplo n.º 5
0
 def _get_run_kw_if_calls(self, given_args):
     while 'ELSE IF' in given_args:
         kw_call, given_args = self._split_run_kw_if_args(given_args, 'ELSE IF', 2)
         yield kw_call
     if 'ELSE' in given_args:
         kw_call, else_call = self._split_run_kw_if_args(given_args, 'ELSE', 1)
         yield kw_call
         yield else_call
     elif self._validate_kw_call(given_args):
         expr, kw_call = given_args[0], given_args[1:]
         if not is_list_variable(expr):
             yield kw_call
 def _get_return_value(self, variables, return_):
     ret = self._handler.return_value if not return_ else return_.return_value
     if not ret:
         return None
     contains_list_var = any(is_list_variable(item) for item in ret)
     try:
         ret = variables.replace_list(ret)
     except DataError as err:
         raise VariableError('Replacing variables from keyword return '
                             'value failed: %s' % err.message)
     if len(ret) != 1 or contains_list_var:
         return ret
     return ret[0]
Exemplo n.º 7
0
 def _validate_kw_call(self, kw_call, min_length=2):
     if len(kw_call) >= min_length:
         return True
     return any(is_list_variable(item) for item in kw_call)