def get_config(argv=None): argv = argv or sys.argv[1:] cli_opts = parse_args(argv=argv) if cli_opts.suite: # read the suite config, update the args try: suite_conf = suites_conf()[cli_opts.suite] except KeyError: raise ConfigurationError('No such suite: %r' % cli_opts.suite) argv += ['-a', ':'.join(suite_conf['tests'])] argv += suite_conf.get('talos_options', []) # args needs to be reparsed now elif not cli_opts.activeTests: raise ConfigurationError('--activeTests or --suite required!') cli_opts = parse_args(argv=argv) setup_logging("talos", cli_opts, {"tbpl": sys.stdout}) config = copy.deepcopy(DEFAULTS) config.update(cli_opts.__dict__) for validate in CONF_VALIDATORS: validate(config) # remove None Values for k, v in config.items(): if v is None: del config[k] return config
def get_config(argv=None): argv = argv or sys.argv[1:] cli_opts = parse_args(argv=argv) if cli_opts.suite: # read the suite config, update the args try: suite_conf = suites_conf()[cli_opts.suite] except KeyError: raise ConfigurationError("No such suite: %r" % cli_opts.suite) argv += ["-a", ":".join(suite_conf["tests"])] # talos_options in the suite config should not override command line # options, so we prepend argv with talos_options so that, when parsed, # the command line options will clobber the suite config options. argv = suite_conf.get("talos_options", []) + argv # args needs to be reparsed now elif not cli_opts.activeTests: raise ConfigurationError("--activeTests or --suite required!") cli_opts = parse_args(argv=argv) setup_logging("talos", cli_opts, {"tbpl": sys.stdout}) config = copy.deepcopy(DEFAULTS) config.update(cli_opts.__dict__) for validate in CONF_VALIDATORS: validate(config) # remove None Values for k, v in config.copy().items(): if v is None: del config[k] return config
def get_config(argv=None): argv = argv or sys.argv[1:] cli_opts = parse_args(argv=argv) if cli_opts.suite: # read the suite config, update the args try: suite_conf = suites_conf()[cli_opts.suite] except KeyError: raise ConfigurationError("No such suite: %r" % cli_opts.suite) argv += ["-a", ":".join(suite_conf["tests"])] argv += suite_conf.get("talos_options", []) # and reparse the args cli_opts = parse_args(argv=argv) elif not cli_opts.activeTests: raise ConfigurationError("--activeTests or --suite required!") cli_opts = parse_args(argv=argv) config = copy.deepcopy(DEFAULTS) config.update(cli_opts.__dict__) for validate in CONF_VALIDATORS: validate(config) # remove None Values for k, v in config.items(): if v is None: del config[k] return config