コード例 #1
0
def pytest_configure(config):
    """Configures the parallel session, then fires pytest_parallel_configured."""
    reporter = terminalreporter.reporter()
    if not config.option.appliances:
        appliances = load_appliances_from_config(conf.env)
        reporter.write_line('Retrieved these appliances from the conf.env', red=True)
    else:
        appliance_config = {
            'appliances': [{'base_url': base_url} for base_url in config.option.appliances]}
        # Grab the possible globals from the conf.env
        for key, value in (
                (key, value)
                for key, value in conf.env.items()
                if key in IPAppliance.CONFIG_MAPPING and key not in IPAppliance.CONFIG_NONGLOBAL):
            appliance_config[key] = value
        appliances = load_appliances_from_config(appliance_config)
        reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True)
    for appliance in appliances:
        reporter.write_line('* {!r}'.format(appliance), cyan=True)
    if len(appliances) > 1:
        session = ParallelSession(config, appliances)
        config.pluginmanager.register(session, "parallel_session")
        store.parallelizer_role = 'master'
        reporter.write_line(
            'As a parallelizer master kicking off parallel session for these {} appliances'.format(
                len(appliances)),
            green=True)
        config.hook.pytest_parallel_configured(parallel_session=session)
    else:
        reporter.write_line('No parallelization required', green=True)
        config.hook.pytest_parallel_configured(parallel_session=None)
コード例 #2
0
def pytest_configure(config):

    if config.getoption('--help'):
        return
    reporter = terminalreporter.reporter()
    if config.getoption('--dummy-appliance'):
        appliances = [DummyAppliance.from_config(config)]
        reporter.write_line('Retrieved Dummy Appliance', red=True)
    elif stack.top:
        appliances = [stack.top]
    elif config.option.appliances:
        appliances = appliances_from_cli(config.option.appliances, config.option.appliance_version)
        reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True)
    elif config.getoption('--use-sprout'):
        from cfme.test_framework.sprout.plugin import mangle_in_sprout_appliances

        mangle_in_sprout_appliances(config)
        # TODO : handle direct sprout pass on?
        appliances = appliances_from_cli(config.option.appliances, None)
        reporter.write_line('Retrieved these appliances from the --sprout-* parameters', red=True)
    else:
        appliances = load_appliances_from_config(conf.env)
        reporter.write_line('Retrieved these appliances from the conf.env', red=True)

    if not stack.top:
        for appliance in appliances:
            reporter.write_line('* {!r}'.format(appliance), cyan=True)
    appliance = appliances[0]
    if not appliance.is_dev:
        appliance.set_session_timeout(86400)
    stack.push(appliance)
    plugin = ApplianceHolderPlugin(appliance, appliances)
    config.pluginmanager.register(plugin, PLUGIN_KEY)
コード例 #3
0
ファイル: appliance.py プロジェクト: lcouzens/cfme_tests
def pytest_configure(config):

    reporter = terminalreporter.reporter()
    if config.getoption('--dummy-appliance'):
        appliances = [DummyAppliance.from_config(config)]
        reporter.write_line('Retrieved Dummy Appliance', red=True)
    elif stack.top:
        appliances = [stack.top]
    elif config.option.appliances:
        appliances = appliances_from_cli(config.option.appliances, config.option.appliance_version)
        reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True)
    elif config.getoption('--use-sprout'):
        from .sprout.plugin import mangle_in_sprout_appliances

        mangle_in_sprout_appliances(config)
        # TODO : handle direct sprout pass on?
        appliances = appliances_from_cli(config.option.appliances, None)
        reporter.write_line('Retrieved these appliances from the --sprout-* parameters', red=True)
    else:
        appliances = load_appliances_from_config(conf.env)
        reporter.write_line('Retrieved these appliances from the conf.env', red=True)

    if not stack.top:
        for appliance in appliances:
            reporter.write_line('* {!r}'.format(appliance), cyan=True)
    appliance = appliances[0]
    if not appliance.is_dev:
        appliance.set_session_timeout(86400)
    stack.push(appliance)
    plugin = ApplianceHolderPlugin(appliance, appliances)
    config.pluginmanager.register(plugin, PLUGIN_KEY)
コード例 #4
0
def pytest_configure(config):

    reporter = terminalreporter.reporter()
    if config.getoption('--dummy-appliance'):
        appliances = [DummyAppliance.from_config(config)]
        reporter.write_line('Retrieved Dummy Appliance', red=True)
    elif stack.top:
        appliances = [stack.top]
    elif config.option.appliances:
        appliances = appliances_from_cli(config.option.appliances)
        reporter.write_line('Retrieved these appliances from the --appliance parameters', red=True)
    elif config.getoption('--use-sprout'):
        from .sprout.plugin import mangle_in_sprout_appliances
        mangle_in_sprout_appliances(config)
        appliances = appliances_from_cli(config.option.appliances)
        reporter.write_line('Retrieved these appliances from the --sprout-* parameters', red=True)
    else:
        appliances = load_appliances_from_config(conf.env)
        reporter.write_line('Retrieved these appliances from the conf.env', red=True)

    if not stack.top:
        for appliance in appliances:
            reporter.write_line('* {!r}'.format(appliance), cyan=True)
    appliance = appliances[0]
    appliance.set_session_timeout(86400)
    stack.push(appliance)
    plugin = ApplianceHolderPlugin(appliance, appliances)
    config.pluginmanager.register(plugin, "appliance-holder")
コード例 #5
0
def get_appliance(appliance_ip):
    """Checks an appliance is not None and if so, loads the appropriate things"""
    from cfme.utils.appliance import IPAppliance, load_appliances_from_config, stack
    if not appliance_ip:
        app = load_appliances_from_config(env)[0]
    else:
        app = IPAppliance(hostname=appliance_ip)
    stack.push(app)  # ensure safety from bad code, phase out later
    return app
コード例 #6
0
ファイル: appliance.py プロジェクト: apagac/cfme_tests
def get_appliance(appliance_ip):
    """Checks an appliance is not None and if so, loads the appropriate things"""
    from cfme.utils.appliance import IPAppliance, load_appliances_from_config, stack
    if not appliance_ip:
        app = load_appliances_from_config(env)[0]
    else:
        app = IPAppliance(hostname=appliance_ip)
    stack.push(app)  # ensure safety from bad code, phase out later
    return app
コード例 #7
0
def appliances_from_cli(cli_appliances):
    appliance_config = {
        'appliances': [{
            'base_url': base_url
        } for base_url in cli_appliances]
    }
    # Grab the possible globals from the conf.env
    for key, value in ((key, value) for key, value in conf.env.items()
                       if key in IPAppliance.CONFIG_MAPPING
                       and key not in IPAppliance.CONFIG_NONGLOBAL):
        appliance_config[key] = value
    return load_appliances_from_config(appliance_config)
コード例 #8
0
ファイル: appliance.py プロジェクト: nachandr/cfme_tests
def pytest_configure(config):

    if config.getoption('--help'):
        return
    reporter = terminalreporter.reporter()
    if config.getoption('--dummy-appliance'):
        appliances = [
            DummyAppliance.from_config(config)
            for _ in range(config.getoption('--num-dummies'))
        ]
        if not config.option.collectonly:
            config.option.collectonly = True

        reporter.write_line('Retrieved Dummy Appliance', red=True)
    elif stack.top:
        appliances = [stack.top]
    elif config.option.appliances:
        appliances = appliances_from_cli(config.option.appliances,
                                         config.option.appliance_version)
        reporter.write_line(
            'Retrieved these appliances from the --appliance parameters',
            red=True)
    elif config.getoption('--use-sprout'):
        from cfme.test_framework.sprout.plugin import mangle_in_sprout_appliances

        mangle_in_sprout_appliances(config)
        # TODO : handle direct sprout pass on?
        appliances = appliances_from_cli(config.option.appliances, None)
        reporter.write_line(
            'Retrieved these appliances from the --sprout-* parameters',
            red=True)
    else:
        appliances = load_appliances_from_config(conf.env)
        reporter.write_line('Retrieved these appliances from the conf.env',
                            red=True)

    if not stack.top:
        for appliance in appliances:
            reporter.write_line(f'* {appliance!r}', cyan=True)
    appliance = appliances[0]

    stack.push(appliance)
    plugin = ApplianceHolderPlugin(appliance, appliances)
    config.pluginmanager.register(plugin, PLUGIN_KEY)

    if not any((isinstance(appliance, DummyAppliance), appliance.is_dev)):
        config.hook.pytest_appliance_setup(config=config)
コード例 #9
0
def appliances_from_cli(cli_appliances):
    appliance_config = dict(appliances=[])
    for appliance_url in cli_appliances:
        parsed_url = urlparse.urlparse(appliance_url)
        if not parsed_url.hostname:
            raise ValueError(
                "Invalid appliance url: {}".format(appliance_url)
            )

        appliance = dict(
            hostname=parsed_url.hostname,
            ui_protocol=parsed_url.scheme if parsed_url.scheme else "https",
            ui_port=parsed_url.port if parsed_url.port else 443,
        )

        appliance_config['appliances'].append(appliance)

    return load_appliances_from_config(appliance_config)
コード例 #10
0
ファイル: appliance.py プロジェクト: nachandr/cfme_tests
def appliances_from_cli(cli_appliances, appliance_version):
    appliance_config = dict(appliances=[])
    for appliance_data in cli_appliances:
        parsed_url = urlparse(appliance_data['hostname'])
        if not parsed_url.hostname:
            raise ValueError(f"Invalid appliance url: {appliance_data}")

        appliance = appliance_data.copy()
        appliance.update(
            dict(hostname=parsed_url.hostname,
                 ui_protocol=parsed_url.scheme
                 if parsed_url.scheme else "https",
                 ui_port=parsed_url.port if parsed_url.port else 443,
                 version=appliance_version))

        appliance_config['appliances'].append(appliance)

    return load_appliances_from_config(appliance_config)
コード例 #11
0
ファイル: appliance.py プロジェクト: akarol/cfme_tests
def appliances_from_cli(cli_appliances):
    appliance_config = dict(appliances=[])
    for appliance_url in cli_appliances:
        parsed_url = six.moves.urllib.parse.urlparse(appliance_url)
        if not parsed_url.hostname:
            raise ValueError(
                "Invalid appliance url: {}".format(appliance_url)
            )

        appliance = dict(
            hostname=parsed_url.hostname,
            ui_protocol=parsed_url.scheme if parsed_url.scheme else "https",
            ui_port=parsed_url.port if parsed_url.port else 443,
        )

        appliance_config['appliances'].append(appliance)

    return load_appliances_from_config(appliance_config)
コード例 #12
0
def appliances_from_cli(cli_appliances):
    appliance_config = dict(appliances=[])
    for appliance_data in cli_appliances:
        parsed_url = six.moves.urllib.parse.urlparse(appliance_data['hostname'])
        if not parsed_url.hostname:
            raise ValueError(
                "Invalid appliance url: {}".format(appliance_data)
            )

        appliance = appliance_data.copy()
        appliance.update(dict(
            hostname=parsed_url.hostname,
            ui_protocol=parsed_url.scheme if parsed_url.scheme else "https",
            ui_port=parsed_url.port if parsed_url.port else 443,
        ))

        appliance_config['appliances'].append(appliance)

    return load_appliances_from_config(appliance_config)
コード例 #13
0
ファイル: appliance.py プロジェクト: lcouzens/cfme_tests
def appliances_from_cli(cli_appliances, appliance_version):
    appliance_config = dict(appliances=[])
    for appliance_data in cli_appliances:
        parsed_url = six.moves.urllib.parse.urlparse(appliance_data['hostname'])
        if not parsed_url.hostname:
            raise ValueError(
                "Invalid appliance url: {}".format(appliance_data)
            )

        appliance = appliance_data.copy()
        appliance.update(dict(
            hostname=parsed_url.hostname,
            ui_protocol=parsed_url.scheme if parsed_url.scheme else "https",
            ui_port=parsed_url.port if parsed_url.port else 443,
            version=appliance_version
        ))

        appliance_config['appliances'].append(appliance)

    return load_appliances_from_config(appliance_config)