Esempio n. 1
0
 def _import_listener(self, listener):
     if not is_string(listener):
         return listener, type_name(listener)
     name, args = split_args_from_name_or_path(listener)
     importer = Importer("listener")
     listener = importer.import_class_or_module(os.path.normpath(name), instantiate_with_args=args)
     return listener, name
Esempio n. 2
0
 def _import_listener(self, listener):
     if not is_string(listener):
         return listener, type_name(listener)
     name, args = split_args_from_name_or_path(listener)
     importer = Importer('listener')
     listener = importer.import_class_or_module(os.path.normpath(name),
                                                instantiate_with_args=args)
     return listener, name
Esempio n. 3
0
 def __init__(self, listener):
     if is_string(listener):
         name, args = split_args_from_name_or_path(listener)
         listener = self._import_listener(name, args)
     else:
         name = type_name(listener)
     self.name = name
     self.version = self._get_version(listener)
     AbstractLoggerProxy.__init__(self, listener)
Esempio n. 4
0
 def __init__(self, listener):
     if is_string(listener):
         name, args = split_args_from_name_or_path(listener)
         listener = self._import_listener(name, args)
     else:
         name = type_name(listener)
     self.name = name
     self.version = self._get_version(listener)
     AbstractLoggerProxy.__init__(self, listener)
Esempio n. 5
0
 def _import_listener(self, listener):
     if not is_string(listener):
         # Modules have `__name__`, with others better to use `type_name`.
         name = getattr(listener, '__name__', None) or type_name(listener)
         return listener, name
     name, args = split_args_from_name_or_path(listener)
     importer = Importer('listener')
     listener = importer.import_class_or_module(os.path.normpath(name),
                                                instantiate_with_args=args)
     return listener, name
 def _yield_visitors(self, visitors):
     importer = Importer('model modifier')
     for visitor in visitors:
         try:
             if not is_string(visitor):
                 yield visitor
             else:
                 name, args = split_args_from_name_or_path(visitor)
                 yield importer.import_class_or_module(name, args)
         except DataError as err:
             self._log_error(err.message)
Esempio n. 7
0
 def __init__(self, listener):
     if is_string(listener):
         name, args = split_args_from_name_or_path(listener)
         listener = self._import_listener(name, args)
     else:
         name = type_name(listener)
     AbstractLoggerProxy.__init__(self, listener)
     self.name = name
     self.version = self._get_version(listener)
     if self.version == 1:
         LOGGER.warn("Listener '%s' uses deprecated API version 1. " "Switch to API version 2 instead." % self.name)
Esempio n. 8
0
 def _yield_visitors(self, visitors):
     importer = Importer('model modifier')
     for visitor in visitors:
         try:
             if not is_string(visitor):
                 yield visitor
             else:
                 name, args = split_args_from_name_or_path(visitor)
                 yield importer.import_class_or_module(name, args)
         except DataError as err:
             self._log_error(err.message)
Esempio n. 9
0
 def _process_value(self, name, value):
     if name == 'ReRunFailed':
         return gather_failed_tests(value)
     if name == 'DeprecatedRunFailed':
         if value.upper() != 'NONE':
             LOGGER.warn(
                 'Option --runfailed is deprecated and will be '
                 'removed in the future. Use --rerunfailed instead.')
         return gather_failed_tests(value)
     if name == 'DeprecatedMerge' and value is True:
         LOGGER.warn('Option --rerunmerge is deprecated and will be '
                     'removed in the future. Use --merge instead.')
     if name == 'LogLevel':
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name in ['Name', 'Doc', 'LogTitle', 'ReportTitle']:
         if name == 'Doc':
             value = self._escape_as_data(value)
         return value.replace('_', ' ')
     if name in ['Metadata', 'TagDoc']:
         if name == 'Metadata':
             value = [self._escape_as_data(v) for v in value]
         return [self._process_metadata_or_tagdoc(v) for v in value]
     if name in ['Include', 'Exclude']:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value
                                       or value.upper() == 'NONE'):
         return None
     if name == 'OutputDir':
         return abspath(value)
     if name in ['MonitorWidth', 'MonitorColors', 'MonitorMarkers']:
         option = '--' + name.lower()
         LOGGER.warn("Option '%s' is deprecated. Use '%s' instead." %
                     (option, option.replace('monitor', 'console')))
     if name in ['SuiteStatLevel', 'MonitorWidth', 'ConsoleWidth']:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == 'VariableFiles':
         return [split_args_from_name_or_path(item) for item in value]
     if name == 'ReportBackground':
         return self._process_report_background(value)
     if name == 'TagStatCombine':
         return [self._process_tag_stat_combine(v) for v in value]
     if name == 'TagStatLink':
         return [
             v for v in [self._process_tag_stat_link(v) for v in value] if v
         ]
     if name == 'Randomize':
         return self._process_randomize_value(value)
     if name == 'RemoveKeywords':
         self._validate_remove_keywords(value)
     if name == 'FlattenKeywords':
         self._validate_flatten_keywords(value)
     return value
Esempio n. 10
0
 def __init__(self, listener):
     if is_string(listener):
         name, args = split_args_from_name_or_path(listener)
         listener = self._import_listener(name, args)
     else:
         name = type_name(listener)
     AbstractLoggerProxy.__init__(self, listener)
     self.name = name
     self.version = self._get_version(listener)
     if self.version == 1:
         LOGGER.warn("Listener '%s' uses deprecated API version 1. "
                     "Switch to API version 2 instead." % self.name)
Esempio n. 11
0
 def _process_value(self, name, value):
     if name == 'ReRunFailed':
         return gather_failed_tests(value)
     if name == 'ReRunFailedSuites':
         return gather_failed_suites(value)
     if name == 'LogLevel':
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name == 'Doc':
         return self._process_doc(value)
     if name == 'Metadata':
         return [self._process_metadata(v) for v in value]
     if name == 'TagDoc':
         return [self._process_tagdoc(v) for v in value]
     if name in ['Include', 'Exclude']:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value
                                       or value.upper() == 'NONE'):
         return None
     if name == 'OutputDir':
         return abspath(value)
     if name in ['SuiteStatLevel', 'ConsoleWidth']:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == 'VariableFiles':
         return [split_args_from_name_or_path(item) for item in value]
     if name == 'ReportBackground':
         return self._process_report_background(value)
     if name == 'TagStatCombine':
         return [self._process_tag_stat_combine(v) for v in value]
     if name == 'TagStatLink':
         return [
             v for v in [self._process_tag_stat_link(v) for v in value] if v
         ]
     if name == 'Randomize':
         return self._process_randomize_value(value)
     if name == 'MaxErrorLines':
         return self._process_max_error_lines(value)
     if name == 'MaxAssignLength':
         return self._process_max_assign_length(value)
     if name == 'PythonPath':
         return self._process_pythonpath(value)
     if name == 'RemoveKeywords':
         self._validate_remove_keywords(value)
     if name == 'FlattenKeywords':
         self._validate_flatten_keywords(value)
     if name == 'ExpandKeywords':
         self._validate_expandkeywords(value)
     if name == 'Extension':
         return tuple(ext.lower().lstrip('.') for ext in value.split(':'))
     return value
    def _yield_visitors(self, visitors):
        # Avoid cyclic imports. Yuck.
        from robot.output import LOGGER

        importer = Importer('model modifier', logger=LOGGER)
        for visitor in visitors:
            try:
                if not is_string(visitor):
                    yield visitor
                else:
                    name, args = split_args_from_name_or_path(visitor)
                    yield importer.import_class_or_module(name, args)
            except DataError as err:
                self._log_error(err.message)
Esempio n. 13
0
 def _process_value(self, name, value):
     if name == 'ReRunFailed':
         return gather_failed_tests(value)
     if name == 'DeprecatedRunFailed':
         if value.upper() != 'NONE':
             LOGGER.warn('Option --runfailed is deprecated and will be '
                         'removed in the future. Use --rerunfailed instead.')
         return gather_failed_tests(value)
     if name == 'DeprecatedMerge' and value is True:
         LOGGER.warn('Option --rerunmerge is deprecated and will be '
                     'removed in the future. Use --merge instead.')
     if name == 'LogLevel':
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name in ['Name', 'Doc', 'LogTitle', 'ReportTitle']:
         if name == 'Doc':
             value = self._escape_as_data(value)
         return value.replace('_', ' ')
     if name in ['Metadata', 'TagDoc']:
         if name == 'Metadata':
             value = [self._escape_as_data(v) for v in value]
         return [self._process_metadata_or_tagdoc(v) for v in value]
     if name in ['Include', 'Exclude']:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value or value.upper() == 'NONE'):
         return None
     if name == 'OutputDir':
         return utils.abspath(value)
     if name in ['MonitorWidth', 'MonitorColors', 'MonitorMarkers']:
         option = '--' + name.lower()
         LOGGER.warn("Option '%s' is deprecated. Use '%s' instead."
                     % (option, option.replace('monitor', 'console')))
     if name in ['SuiteStatLevel', 'MonitorWidth', 'ConsoleWidth']:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == 'VariableFiles':
         return [split_args_from_name_or_path(item) for item in value]
     if name == 'ReportBackground':
         return self._process_report_background(value)
     if name == 'TagStatCombine':
         return [self._process_tag_stat_combine(v) for v in value]
     if name == 'TagStatLink':
         return [v for v in [self._process_tag_stat_link(v) for v in value] if v]
     if name == 'Randomize':
         return self._process_randomize_value(value)
     if name == 'RemoveKeywords':
         self._validate_remove_keywords(value)
     if name == 'FlattenKeywords':
         self._validate_flatten_keywords(value)
     return value
Esempio n. 14
0
 def _process_value(self, name, value):
     if name == 'ReRunFailed':
         return gather_failed_tests(value)
     if name == 'ReRunFailedSuites':
         return gather_failed_suites(value)
     if name == 'LogLevel':
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name == 'Doc':
         return self._escape_as_data(value)
     if name in ['Metadata', 'TagDoc']:
         if name == 'Metadata':
             value = [self._escape_as_data(v) for v in value]
         return [self._process_metadata_or_tagdoc(v) for v in value]
     if name in ['Include', 'Exclude']:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value
                                       or value.upper() == 'NONE'):
         return None
     if name == 'OutputDir':
         return abspath(value)
     if name in ['SuiteStatLevel', 'ConsoleWidth']:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == 'VariableFiles':
         return [split_args_from_name_or_path(item) for item in value]
     if name == 'ReportBackground':
         return self._process_report_background(value)
     if name == 'TagStatCombine':
         return [self._process_tag_stat_combine(v) for v in value]
     if name == 'TagStatLink':
         return [
             v for v in [self._process_tag_stat_link(v) for v in value] if v
         ]
     if name == 'Randomize':
         return self._process_randomize_value(value)
     if name == 'MaxErrorLines':
         return self._process_max_error_lines(value)
     if name == 'RemoveKeywords':
         self._validate_remove_keywords(value)
     if name == 'FlattenKeywords':
         self._validate_flatten_keywords(value)
     if name == 'WarnOnSkipped':
         with LOGGER.cache_only:
             LOGGER.warn("Option '--warnonskippedfiles' is deprecated and "
                         "has no effect. Nowadays all skipped files are "
                         "reported.")
     return value
Esempio n. 15
0
 def _process_value(self, name, value):
     if name == 'ReRunFailed':
         return gather_failed_tests(value)
     if name == 'ReRunFailedSuites':
         return gather_failed_suites(value)
     if name == 'LogLevel':
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name in ['Name', 'Doc', 'LogTitle', 'ReportTitle']:
         if name == 'Doc':
             value = self._escape_as_data(value)
         return value.replace('_', ' ')
     if name in ['Metadata', 'TagDoc']:
         if name == 'Metadata':
             value = [self._escape_as_data(v) for v in value]
         return [self._process_metadata_or_tagdoc(v) for v in value]
     if name in ['Include', 'Exclude']:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value
                                       or value.upper() == 'NONE'):
         return None
     if name == 'OutputDir':
         return abspath(value)
     if name in ['SuiteStatLevel', 'ConsoleWidth']:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == 'VariableFiles':
         return [split_args_from_name_or_path(item) for item in value]
     if name == 'ReportBackground':
         return self._process_report_background(value)
     if name == 'TagStatCombine':
         return [self._process_tag_stat_combine(v) for v in value]
     if name == 'TagStatLink':
         return [
             v for v in [self._process_tag_stat_link(v) for v in value] if v
         ]
     if name == 'Randomize':
         return self._process_randomize_value(value)
     if name == 'RemoveKeywords':
         self._validate_remove_keywords(value)
     if name == 'FlattenKeywords':
         self._validate_flatten_keywords(value)
     return value
Esempio n. 16
0
 def _process_value(self, name, value):
     if name == "ReRunFailed":
         return gather_failed_tests(value)
     if name == "ReRunFailedSuites":
         return gather_failed_suites(value)
     if name == "LogLevel":
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name in ["Name", "Doc", "LogTitle", "ReportTitle"]:
         if name == "Doc":
             value = self._escape_as_data(value)
         return value.replace("_", " ")
     if name in ["Metadata", "TagDoc"]:
         if name == "Metadata":
             value = [self._escape_as_data(v) for v in value]
         return [self._process_metadata_or_tagdoc(v) for v in value]
     if name in ["Include", "Exclude"]:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value or value.upper() == "NONE"):
         return None
     if name == "OutputDir":
         return abspath(value)
     if name in ["SuiteStatLevel", "ConsoleWidth"]:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == "VariableFiles":
         return [split_args_from_name_or_path(item) for item in value]
     if name == "ReportBackground":
         return self._process_report_background(value)
     if name == "TagStatCombine":
         return [self._process_tag_stat_combine(v) for v in value]
     if name == "TagStatLink":
         return [v for v in [self._process_tag_stat_link(v) for v in value] if v]
     if name == "Randomize":
         return self._process_randomize_value(value)
     if name == "RemoveKeywords":
         self._validate_remove_keywords(value)
     if name == "FlattenKeywords":
         self._validate_flatten_keywords(value)
     return value
Esempio n. 17
0
 def _process_value(self, name, value):
     if name == 'ReRunFailed':
         return gather_failed_tests(value)
     if name == 'ReRunFailedSuites':
         return gather_failed_suites(value)
     if name == 'LogLevel':
         return self._process_log_level(value)
     if value == self._get_default_value(name):
         return value
     if name == 'Doc':
         return self._escape_as_data(value)
     if name in ['Metadata', 'TagDoc']:
         if name == 'Metadata':
             value = [self._escape_as_data(v) for v in value]
         return [self._process_metadata_or_tagdoc(v) for v in value]
     if name in ['Include', 'Exclude']:
         return [self._format_tag_patterns(v) for v in value]
     if name in self._output_opts and (not value or value.upper() == 'NONE'):
         return None
     if name == 'OutputDir':
         return abspath(value)
     if name in ['SuiteStatLevel', 'ConsoleWidth']:
         return self._convert_to_positive_integer_or_default(name, value)
     if name == 'VariableFiles':
         return [split_args_from_name_or_path(item) for item in value]
     if name == 'ReportBackground':
         return self._process_report_background(value)
     if name == 'TagStatCombine':
         return [self._process_tag_stat_combine(v) for v in value]
     if name == 'TagStatLink':
         return [v for v in [self._process_tag_stat_link(v) for v in value] if v]
     if name == 'Randomize':
         return self._process_randomize_value(value)
     if name == 'RemoveKeywords':
         self._validate_remove_keywords(value)
     if name == 'FlattenKeywords':
         self._validate_flatten_keywords(value)
     return value