未验证 提交 291e4b4d 编写于 作者: R Rudá Moura

multiplexer: Graceful disable it if PyYAML is not installed.

Test for feature MULTIPLEX_CAPABLE to graful disable the multiplexer
if PyYAML is not installed.
Signed-off-by: NRudá Moura <rmoura@redhat.com>
上级 fe88e25e
......@@ -37,13 +37,18 @@ import collections
import os
import re
import yaml
try:
from yaml import CLoader as Loader
import yaml
except ImportError:
from yaml import Loader
MULTIPLEX_CAPABLE = False
else:
MULTIPLEX_CAPABLE = True
if MULTIPLEX_CAPABLE:
try:
from yaml import CLoader as Loader
except ImportError:
from yaml import Loader
# Mapping for yaml flags
......
......@@ -90,7 +90,8 @@ class Job(object):
self.loglevel = mapping[raw_log_level]
else:
self.loglevel = logging.DEBUG
self.multiplex_files = args.multiplex_files
if multiplexer.MULTIPLEX_CAPABLE:
self.multiplex_files = args.multiplex_files
self.show_job_log = args.show_job_log
self.silent = args.silent
else:
......@@ -259,13 +260,14 @@ class Job(object):
params_list = self.test_loader.discover_urls(urls)
if multiplex_files is None:
if self.args and self.args.multiplex_files is not None:
multiplex_files = self.args.multiplex_files
if multiplexer.MULTIPLEX_CAPABLE:
if multiplex_files is None:
if self.args and self.args.multiplex_files is not None:
multiplex_files = self.args.multiplex_files
if multiplex_files is not None:
params_list = self._multiplex_params_list(params_list,
multiplex_files)
if multiplex_files is not None:
params_list = self._multiplex_params_list(params_list,
multiplex_files)
try:
test_suite = self.test_loader.discover(params_list)
......
......@@ -23,6 +23,8 @@ import itertools
from avocado.core import tree
MULTIPLEX_CAPABLE = tree.MULTIPLEX_CAPABLE
def tree2pools(node, mux=True):
"""
......
......@@ -32,6 +32,9 @@ class Multiplexer(plugin.Plugin):
enabled = True
def configure(self, parser):
if multiplexer.MULTIPLEX_CAPABLE is False:
self.enabled = False
return
self.parser = parser.subcommands.add_parser(
'multiplex',
help='Generate a list of dictionaries with params from a multiplex file')
......
......@@ -23,6 +23,7 @@ from avocado.core import exit_codes
from avocado.plugins import plugin
from avocado.core import output
from avocado import job
from avocado import multiplexer
class TestRunner(plugin.Plugin):
......@@ -107,13 +108,14 @@ class TestRunner(plugin.Plugin):
'present for the test. '
'Current: False (output check enabled)'))
mux = self.parser.add_argument_group('multiplex arguments')
mux.add_argument('-m', '--multiplex-files', nargs='*', default=None,
help='Path(s) to a avocado multiplex (.yaml) file(s)')
mux.add_argument('--filter-only', nargs='*', default=[],
help='Filter only path(s) from multiplexing')
mux.add_argument('--filter-out', nargs='*', default=[],
help='Filter out path(s) from multiplexing')
if multiplexer.MULTIPLEX_CAPABLE:
mux = self.parser.add_argument_group('multiplex arguments')
mux.add_argument('-m', '--multiplex-files', nargs='*', default=None,
help='Path(s) to a avocado multiplex (.yaml) file(s)')
mux.add_argument('--filter-only', nargs='*', default=[],
help='Filter only path(s) from multiplexing')
mux.add_argument('--filter-out', nargs='*', default=[],
help='Filter out path(s) from multiplexing')
super(TestRunner, self).configure(self.parser)
# Export the test runner parser back to the main parser
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册