def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.provider_by_type( metafunc, ['virtualcenter']) argnames = argnames + ["_host_provider"] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if args['provider'].type != "virtualcenter": continue hosts = args['provider'].data.get("hosts", []) if not hosts: continue version = args['provider'].data.get("version", None) if version is None: # No version, no test continue if Version(version) < "5.0": # Ignore lesser than 5 continue host = hosts[0] creds = credentials[host["credentials"]] ip_address = resolve_hostname(host["name"]) cred = VMwareProvider.Credential(principal=creds["username"], secret=creds["password"], verify_secret=creds["password"]) # Mock provider data provider_data = {} provider_data.update(args['provider'].data) provider_data["name"] = host["name"] provider_data["hostname"] = host["name"] provider_data["ipaddress"] = ip_address provider_data["credentials"] = host["credentials"] provider_data.pop("host_provisioning", None) provider_data["hosts"] = [host] provider_data["discovery_range"] = {} provider_data["discovery_range"]["start"] = ip_address provider_data["discovery_range"]["end"] = ip_address host_provider = VMwareProvider( name=host["name"], hostname=host["name"], ip_address=ip_address, credentials={'default': cred}, provider_data=provider_data, ) argvalues[i].append(host_provider) idlist[i] = "{}/{}".format(args['provider'].key, host["name"]) new_idlist.append(idlist[i]) new_argvalues.append(argvalues[i]) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): arg_names = "provider", "provider_data", "original_provider_key" arg_values = [] arg_ids = [] for provider_key, provider in cfme_data.get("management_systems", {}).iteritems(): if provider["type"] != "virtualcenter": continue hosts = provider.get("hosts", []) if not hosts: continue version = provider.get("version", None) if version is None: # No version, no test continue if Version(version) < "5.0": # Ignore lesser than 5 continue host = random.choice(hosts) creds = credentials[host["credentials"]] ip_address = resolve_hostname(host["name"]) cred = VMwareProvider.Credential( principal=creds["username"], secret=creds["password"], verify_secret=creds["password"] ) # Mock provider data provider_data = {} provider_data.update(provider) provider_data["name"] = host["name"] provider_data["hostname"] = host["name"] provider_data["ipaddress"] = ip_address provider_data["credentials"] = host["credentials"] provider_data.pop("host_provisioning", None) provider_data["hosts"] = [host] provider_data["discovery_range"] = {} provider_data["discovery_range"]["start"] = ip_address provider_data["discovery_range"]["end"] = ip_address host_provider = VMwareProvider( name=host["name"], hostname=host["name"], ip_address=ip_address, credentials={'default': cred}, provider_data=provider_data, ) arg_values.append([host_provider, provider_data, provider_key]) arg_ids.append("{}/random_host".format(provider_key)) metafunc.parametrize(arg_names, arg_values, ids=arg_ids, scope="module")