예제 #1
0
def pytest_configure(config):
    if config.getoption("help"):
        return

    arg_dict, rule_dict = _load_argdict_rule_dict(config)
    _init_arjuna(config, arg_dict)
    gname = config.getoption("group").lower()
    if gname == "mgroup":
        group = TestGroup.from_pickers(rconf_name=config.getoption("ref.conf"),
                                       rules=rule_dict)
    else:
        filtered_rule_dict = {k: v for k, v in rule_dict.items() if v}
        if filtered_rule_dict:
            raise Exception(
                "When you provide a group name, you can not provide test selectors/rules in Command line. You have provided group name as >>{}<< and also provided selectors/rules: {}."
                .format(gname,
                        {k: v
                         for k, v in filtered_rule_dict.items() if v}))
        else:
            group = TestGroup.from_def(gname,
                                       rconf_name=config.getoption("ref.conf"))

    _configure_pytest_reports(config)

    from arjuna import Arjuna
    Arjuna._set_command(" ".join(RAW_ARGS))
    Arjuna.register_pytest_command_for_group(" ".join(CONVERTED_ARGS))

    PytestHooks.add_env_data(config)
예제 #2
0
    def __init__(self, args):
        super().__init__()
        self._args = args
        from arjuna import Arjuna
        Arjuna._set_command(" ".join(self._args))
        self.arg_dict = None
        self.main_command = MainCommand()

        # Create parser for primary commands
        subparsers = self.main_command.create_subparsers()

        # Create re-usable parses for command arguments
        new_project_parser = NewProjectParser()

        # Create primary command handlers
        self.create_project = CreateProject(subparsers, [new_project_parser])