markers.env_markers.provider module

class markers.env_markers.provider.ProviderEnvironmentMarker[source]

Bases: markers.env.EnvironmentMarker

NAME = 'provider'
process_env_mark(metafunc)[source]
markers.env_markers.provider.parametrize(metafunc, argnames, argvalues, *args, **kwargs)[source]

parametrize wrapper that calls _param_check(), and only parametrizes when needed

This can be used in any place where conditional parametrization is used.

markers.env_markers.provider.providers(metafunc, filters=None, selector='all')[source]

Gets providers based on given (+ global) filters

Note

Using the default ‘function’ scope, each test will be run individually for each provider before moving on to the next test. To group all tests related to single provider together, parametrize tests in the ‘module’ scope.

Note

testgen for providers now requires the usage of test_flags for collection to work. Please visit http://cfme-tests.readthedocs.org/guides/documenting.html#documenting-tests for more details.

markers.env_markers.provider.providers_by_class(metafunc, classes, required_fields=None, selector='all')[source]

Gets providers by their class

Parameters:
  • metafunc – Passed in by pytest
  • classes – List of classes to fetch
  • required_fields – See cfme.utils.provider.ProviderFilter

Usage:

# In the function itself
def pytest_generate_tests(metafunc):
    argnames, argvalues, idlist = testgen.providers_by_class(
        [GCEProvider, AzureProvider], required_fields=['provisioning']
    )
metafunc.parametrize(argnames, argvalues, ids=idlist, scope='module')

# Using the parametrize wrapper
pytest_generate_tests = testgen.parametrize([GCEProvider], scope='module')