Example #1
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
Example #2
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(unicode(err))
Example #3
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)
Example #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)
     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)
 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)
Example #6
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
Example #7
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
Example #8
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