Ejemplo n.º 1
0
 def _validate(self, name, value):
     if name[0] == '@' and not is_list_like(value):
         raise DataError("Invalid variable '%s': Expected list-like value, "
                         "got %s." % (name, type_name(value)))
     if name[0] == '&' and not is_dict_like(value):
         raise DataError("Invalid variable '%s': Expected dict-like value, "
                         "got %s." % (name, type_name(value)))
Ejemplo n.º 2
0
 def _validate(self, name, value):
     if name[0] == '@' and not is_list_like(value):
         raise DataError("Invalid variable '%s': Expected list-like value, "
                         "got %s." % (name, type_name(value)))
     if name[0] == '&' and not is_dict_like(value):
         raise DataError("Invalid variable '%s': Expected dict-like value, "
                         "got %s." % (name, type_name(value)))
Ejemplo n.º 3
0
 def _process_cli_opts(self, opts):
     for name, (cli_name, default) in self._cli_opts.items():
         value = opts[cli_name] if cli_name in opts else default
         if default == [] and not is_list_like(value):
             value = [value]
         self[name] = self._process_value(name, value)
     self['TestNames'] += self['ReRunFailed'] or self['DeprecatedRunFailed']
Ejemplo n.º 4
0
 def _decorate(self, name, value):
     if is_dict_like(value):
         name = '&{%s}' % name
     elif is_list_like(value):
         name = '@{%s}' % name
     else:
         name = '${%s}' % name
     return name, value
Ejemplo n.º 5
0
 def _get_variable_item(self, name, variable, item):
     if is_dict_like(variable):
         return self._get_dict_variable_item(name, variable, item)
     if is_list_like(variable):
         return self._get_list_variable_item(name, variable, item)
     raise VariableError("Variable '%s' is %s, not list or dictionary, "
                         "and thus accessing item '%s' from it is not "
                         "possible." % (name, type_name(variable), item))
Ejemplo n.º 6
0
 def _convert(self, value):
     if isinstance(value, xmlrpclib.Binary):
         return bytes(value.data)
     if is_dict_like(value):
         return DotDict((k, self._convert(v)) for k, v in value.items())
     if is_list_like(value):
         return [self._convert(v) for v in value]
     return value
Ejemplo n.º 7
0
Archivo: store.py Proyecto: Garjy/RIDE
 def _decorate(self, name, value):
     if is_dict_like(value):
         name = '&{%s}' % name
     elif is_list_like(value):
         name = '@{%s}' % name
     else:
         name = '${%s}' % name
     return name, value
Ejemplo n.º 8
0
 def _convert(self, value):
     if isinstance(value, xmlrpclib.Binary):
         return str(value)
     if is_dict_like(value):
         return DotDict((k, self._convert(v)) for k, v in value.items())
     if is_list_like(value):
         return [self._convert(v) for v in value]
     return value
Ejemplo n.º 9
0
 def _process_cli_opts(self, opts):
     for name, (cli_name, default) in self._cli_opts.items():
         value = opts[cli_name] if cli_name in opts else default
         if isinstance(default, list):
             # Copy mutable values and support list values as scalars.
             value = list(value) if is_list_like(value) else [value]
         self[name] = self._process_value(name, value)
     self['TestNames'] += self['ReRunFailed'] + self['TaskNames']
     self['SuiteNames'] += self['ReRunFailedSuites']
Ejemplo n.º 10
0
 def _process_cli_opts(self, opts):
     for name, (cli_name, default) in self._cli_opts.items():
         value = opts[cli_name] if cli_name in opts else default
         if isinstance(default, list):
             # Copy mutable values and support list values as scalars.
             value = list(value) if is_list_like(value) else [value]
         self[name] = self._process_value(name, value)
     self['TestNames'] += self['ReRunFailed'] + self['TaskNames']
     self['SuiteNames'] += self['ReRunFailedSuites']
Ejemplo n.º 11
0
 def get_listeners(self, libinst=None):
     if libinst is None:
         libinst = self.get_instance()
     listeners = getattr(libinst, 'ROBOT_LIBRARY_LISTENER', None)
     if listeners is None:
         return []
     if is_list_like(listeners):
         return listeners
     return [listeners]
Ejemplo n.º 12
0
 def _get_variable_item(self, name, variable, item):
     if is_dict_like(variable):
         return self._get_dict_variable_item(name, variable, item)
     if is_list_like(variable):
         return self._get_list_variable_item(name, variable, item)
     raise VariableError("Variable '%s' is %s, not list or dictionary, "
                         "and thus accessing item '%s' from it is not "
                         "possible."
                         % (name, type_name(variable), item))
Ejemplo n.º 13
0
 def _transform_items(self, items):
     answer = list()
     for item in items:
         if not is_list_like(item):
             raise DataError('FOR IN ZIP items must all be list-like, '
                             'got %s.' % type_name(item))
     for zipped_item in zip(*[list(item) for item in items]):
         answer.extend(zipped_item)
     return answer
Ejemplo n.º 14
0
 def validate(self, types):
     if types is None:
         return None
     if not types:
         return {}
     if is_dict_like(types):
         return self.validate_type_dict(types)
     if is_list_like(types):
         return self.convert_type_list_to_dict(types)
     raise DataError('Type information must be given as a dictionary or '
                     'a list, got %s.' % type_name(types))
Ejemplo n.º 15
0
 def _undecorate(self, name, value):
     validate_var(name)
     if name[0] == '@':
         if not is_list_like(value):
             self._raise_cannot_set_type(name, value, 'list')
         value = list(value)
     if name[0] == '&':
         if not is_dict_like(value):
             self._raise_cannot_set_type(name, value, 'dictionary')
         value = DotDict(value)
     return name[2:-1], value
Ejemplo n.º 16
0
Archivo: store.py Proyecto: Garjy/RIDE
 def _undecorate(self, name, value):
     validate_var(name)
     if name[0] == '@':
         if not is_list_like(value):
             self._raise_cannot_set_type(name, value, 'list')
         value = list(value)
     if name[0] == '&':
         if not is_dict_like(value):
             self._raise_cannot_set_type(name, value, 'dictionary')
         value = DotDict(value)
     return name[2:-1], value
Ejemplo n.º 17
0
 def _validate_value(self, value, identifier, name):
     if identifier == '@':
         if not is_list_like(value):
             raise VariableError("Value of variable '%s' is not list or "
                                 "list-like." % name)
         return list(value)
     if identifier == '&':
         if not is_dict_like(value):
             raise VariableError("Value of variable '%s' is not dictionary "
                                 "or dictionary-like." % name)
         return DotDict(value)
     return value
Ejemplo n.º 18
0
 def _validate_value(self, value, identifier, name):
     if identifier == '@':
         if not is_list_like(value):
             raise VariableError("Value of variable '%s' is not list or "
                                 "list-like." % name)
         return list(value)
     if identifier == '&':
         if not is_dict_like(value):
             raise VariableError("Value of variable '%s' is not dictionary "
                                 "or dictionary-like." % name)
         return DotDict(value)
     return value
Ejemplo n.º 19
0
 def _validate_value(self, value, identifier, name):
     if identifier == '@':
         if not is_list_like(value):
             raise VariableError("Value of variable '%s' is not list or "
                                 "list-like." % name)
         # TODO: Is converting to list needed or would checking be enough?
         # TODO: Check this and DotDict usage below in RF 3.1.
         return list(value)
     if identifier == '&':
         if not is_dict_like(value):
             raise VariableError("Value of variable '%s' is not dictionary "
                                 "or dictionary-like." % name)
         # TODO: Is converting to DotDict needed? Check in RF 3.1.
         return DotDict(value)
     return value
Ejemplo n.º 20
0
 def _validate_value(self, value, identifier, name):
     if identifier == '@':
         if not is_list_like(value):
             raise VariableError("Value of variable '%s' is not list or "
                                 "list-like." % name)
         # TODO: Is converting to list needed or would checking be enough?
         # TODO: Check this and DotDict usage below in RF 3.1.
         return list(value)
     if identifier == '&':
         if not is_dict_like(value):
             raise VariableError("Value of variable '%s' is not dictionary "
                                 "or dictionary-like." % name)
         # TODO: Is converting to DotDict needed? Check in RF 3.1.
         return DotDict(value)
     return value
Ejemplo n.º 21
0
    def join_command_line(self, *args):
        """Joins arguments into one command line string.

        In resulting command line string arguments are delimited with a space,
        arguments containing spaces are surrounded with quotes, and possible
        quotes are escaped with a backslash.

        If this keyword is given only one argument and that is a list like
        object, then the values of that list are joined instead.

        Example:
        | ${cmd} = | Join Command Line | --option | value with spaces |
        | Should Be Equal | ${cmd} | --option "value with spaces" |

        New in Robot Framework 2.9.2.
        """
        if len(args) == 1 and is_list_like(args[0]):
            args = args[0]
        return subprocess.list2cmdline(args)
Ejemplo n.º 22
0
 def _take_copy_of_mutable_value(self, value):
     if is_dict_like(value):
         return dict(value)
     if is_list_like(value):
         return list(value)
     return value
 def _get_listeners(self, inst):
     if not hasattr(inst, 'ROBOT_LIBRARY_LISTENER'):
         return None
     listeners = inst.ROBOT_LIBRARY_LISTENER
     return listeners if is_list_like(listeners) else [listeners]
Ejemplo n.º 24
0
 def _resolve_setting(self, value):
     if is_list_like(value):
         return self._variables.replace_list(value, ignore_errors=True)
     return self._variables.replace_string(value, ignore_errors=True)
Ejemplo n.º 25
0
 def _log_start(self, command, config):
     if is_list_like(command):
         command = self.join_command_line(command)
     logger.info(u'Starting process:\n%s' % system_decode(command))
     logger.debug(u'Process configuration:\n%s' % config)
Ejemplo n.º 26
0
 def __init__(self, flatten):
     if not is_list_like(flatten):
         flatten = [flatten]
     names = [n[5:] for n in flatten if n[:5].lower() == 'name:']
     self._matcher = MultiMatcher(names)
Ejemplo n.º 27
0
 def __init__(self, flatten):
     if not is_list_like(flatten):
         flatten = [flatten]
     patterns = [p[4:] for p in flatten if p[:4].lower() == 'tag:']
     self._matcher = TagPatterns(patterns)
Ejemplo n.º 28
0
 def _validate_list(self, list_, position=1):
     if not is_list_like(list_):
         raise TypeError("Expected argument %d to be a list or list-like, "
                         "got %s instead." % (position, type_name(list_)))
Ejemplo n.º 29
0
 def __init__(self, flatten):
     if not is_list_like(flatten):
         flatten = [flatten]
     flatten = [f.lower() for f in flatten]
     self._types = [f for f in flatten if f in ('for', 'foritem')]
Ejemplo n.º 30
0
 def replace_list(self, items, replace_until=None, ignore_errors=False):
     if not is_list_like(items):
         raise ValueError("'replace_list' requires list-like input.")
     return self._replacer.replace_list(items, replace_until, ignore_errors)
Ejemplo n.º 31
0
 def _validate_list(self, list_, position=1):
     if not is_list_like(list_):
         raise TypeError("Expected argument %d to be a list or list-like, "
                         "got %s instead." % (position, type_name(list_)))
Ejemplo n.º 32
0
 def __init__(self, flatten):
     if not is_list_like(flatten):
         flatten = [flatten]
     patterns = [p[4:] for p in flatten if p[:4].lower() == 'tag:']
     self._matcher = TagPatterns(patterns)
Ejemplo n.º 33
0
 def _get_tags_from_attribute(self, handler_method):
     tags = getattr(handler_method, 'robot_tags', ())
     if not is_list_like(tags):
         raise DataError("Expected tags to be list-like, got %s."
                         % type_name(tags))
     return tags
Ejemplo n.º 34
0
 def _take_copy_of_mutable_value(self, value):
     if is_dict_like(value):
         return dict(value)
     if is_list_like(value):
         return list(value)
     return value
Ejemplo n.º 35
0
 def replace_list(self, items, replace_until=None, ignore_errors=False):
     if not is_list_like(items):
         raise ValueError("'replace_list' requires list-like input.")
     return self._replacer.replace_list(items, replace_until, ignore_errors)
Ejemplo n.º 36
0
 def _resolve_setting(self, value):
     if is_list_like(value):
         return self._variables.replace_list(value, ignore_errors=True)
     return self._variables.replace_string(value, ignore_errors=True)
Ejemplo n.º 37
0
 def __init__(self, flatten):
     if not is_list_like(flatten):
         flatten = [flatten]
     flatten = [f.lower() for f in flatten]
     self._types = [f for f in flatten if f in ('for', 'foritem')]
Ejemplo n.º 38
0
 def __init__(self, flatten):
     if not is_list_like(flatten):
         flatten = [flatten]
     names = [n[5:] for n in flatten if n[:5].lower() == 'name:']
     self._matcher = MultiMatcher(names)
 def _passing_list(self, arguments):
     return self._correct_count(arguments) and is_list_like(arguments[-1])
Ejemplo n.º 40
0
 def _passing_list(self, arguments):
     return self._correct_count(arguments) and is_list_like(arguments[-1])