def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.all_providers(metafunc) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [InfraProvider]) argnames = argnames + ['host_type', 'host_name'] new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) prov_hosts = args['provider'].data['hosts'] if not prov_hosts: continue for test_host in prov_hosts: if not test_host.get('test_fleece', False): continue assert test_host.get('type', None) in HOST_TYPES,\ 'host type must be set to [{}] for smartstate analysis tests'\ .format('|'.join(HOST_TYPES)) argvalues[i] = argvalues[i] + [ test_host['type'], test_host['name'] ] test_id = '{}-{}-{}'.format(args['provider'].key, test_host['type'], test_host['name']) new_argvalues.append(argvalues[i]) new_idlist.append(test_id) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers( metafunc, 'provisioning', template_location=["provisioning", "template"]) new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['provisioning']: # No provisioning data available continue # required keys should be a subset of the dict keys set if not {'template', 'host', 'datastore'}.issubset( args['provisioning'].viewkeys()): # Need all three for template provisioning continue 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): argnames = ['reg_method', 'reg_data', 'proxy_url', 'proxy_creds'] argvalues = [] idlist = [] all_reg_data = conf.cfme_data['redhat_updates']['registration'] if 'reg_method' in metafunc.fixturenames: for reg_method in REG_METHODS: reg_data = all_reg_data.get(reg_method, None) if not reg_data or not reg_data.get('test_registration', False): continue proxy_data = all_reg_data.get('http_proxy', False) if proxy_data and proxy_data.get('url', None): proxy_url = proxy_data['url'] proxy_creds = conf.credentials['http_proxy'] argval = [reg_method, reg_data, proxy_url, proxy_creds] argid = '{}-{}'.format(reg_method, 'proxy_on') idlist.append(argid) argvalues.append(argval) argval = [reg_method, reg_data, None, None] argid = '{}-{}'.format(reg_method, 'proxy_off') idlist.append(argid) argvalues.append(argval) parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): new_idlist = [] new_argvalues = [] argnames, argvalues, idlist = testgen.providers_by_class( metafunc, PROVIDER_TYPES, required_fields=['datastores']) argnames += ['datastore'] datastore_collection = datastore.DatastoreCollection() for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) datastores = args['provider'].data.get('datastores', {}) if not datastores: continue for ds in datastores: if not ds.get('test_fleece', False): continue assert ds.get('type') in DATASTORE_TYPES,\ 'datastore type must be set to [{}] for smartstate analysis tests'\ .format('|'.join(DATASTORE_TYPES)) argvs = argvalues[i][:] new_argvalues.append(argvs + [ datastore_collection.instantiate( ds['name'], args['provider'].key, ds['type']) ]) test_id = '{}-{}'.format(args['provider'].key, ds['type']) new_idlist.append(test_id) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, 'provisioning') argnames = argnames + ['cloud_init_template'] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['provisioning']: # No provisioning data available continue if args['provider_type'] == "scvmm" or args['provider_type'] == 'virtualcenter': continue # required keys should be a subset of the dict keys set if not {'ci-template', 'ci-username', 'ci-pass', 'template'}.issubset( args['provisioning'].viewkeys()): continue cloud_init_template = args['provisioning']['ci-template'] if cloud_init_template not in cfme_data.get('customization_templates', {}).keys(): continue argvalues[i].append(get_template_from_config(cloud_init_template)) 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): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers( metafunc, required_fields=[["provisioning", "template"], ["provisioning", "host"], ["provisioning", "datastore"]], ) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.cloud_providers( metafunc, 'provisioning') new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['provisioning']: # Don't know what type of instance to provision, move on continue # required keys should be a subset of the dict keys set if not {'image'}.issubset(args['provisioning'].viewkeys()): # Need image for image -> instance provisioning continue new_idlist.append(idlist[i]) new_argvalues.append([args[argname] for argname in argnames]) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): types = ['virtualcenter', 'rhevm', 'scvmm'] argnames, argvalues, idlist = testgen.provider_by_type(metafunc, types) argnames = ['providers_for_discover', 'start_ip', 'max_range'] new_id_list = [] providers_complete = [] providers_final = [] for x in idlist: providers_complete.append(get_crud(x)) provider_combinations = sorted(find_neighbour_provider_combinations( providers_complete, len(types)), key=len) signatures_seen = set() for prov_comb in provider_combinations: sig = generate_signature(prov_comb) if sig in signatures_seen: continue signatures_seen.add(sig) start_ip, max_range = minmax_ip(prov_comb) providers_final.append([prov_comb, start_ip, max_range]) new_id_list.append(sig) testgen.parametrize(metafunc, argnames, providers_final, ids=new_id_list, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, required_fields=[ 'iso_datastore', ['provisioning', 'host'], ['provisioning', 'datastore'], ['provisioning', 'iso_template'], ['provisioning', 'iso_file'], ['provisioning', 'iso_kickstart'], ['provisioning', 'iso_root_password'], ['provisioning', 'iso_image_type'], ['provisioning', 'vlan'], ]) argnames = argnames + ['iso_cust_template', 'iso_datastore'] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) iso_cust_template = args['provider'].data['provisioning']['iso_kickstart'] if iso_cust_template not in cfme_data.get('customization_templates', {}).keys(): continue argvalues[i].append(get_template_from_config(iso_cust_template)) argvalues[i].append(ISODatastore(args['provider'].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): argnames, argvalues, idlist = testgen.providers_by_class(metafunc, [InfraProvider]) argnames = argnames + ['host_type', 'host_name'] new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) prov_hosts = args['provider'].data['hosts'] if not prov_hosts: continue for test_host in prov_hosts: if not test_host.get('test_fleece', False): continue assert test_host.get('type', None) in HOST_TYPES,\ 'host type must be set to [{}] for smartstate analysis tests'\ .format('|'.join(HOST_TYPES)) argvalues[i] = argvalues[i] + [test_host['type'], test_host['name']] test_id = '{}-{}-{}'.format(args['provider'].key, test_host['type'], test_host['name']) new_argvalues.append(argvalues[i]) new_idlist.append(test_id) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): types = [VMwareProvider, RHEVMProvider, SCVMMProvider] argnames, argvalues, idlist = testgen.providers_by_class( metafunc, types) argnames = ['providers_for_discover', 'start_ip', 'max_range'] new_id_list = [] providers_complete = [] providers_final = [] for x in idlist: providers_complete.append(get_crud(x)) provider_combinations = sorted( find_neighbour_provider_combinations(providers_complete, len(types)), key=len) signatures_seen = set() for prov_comb in provider_combinations: sig = generate_signature(prov_comb) if sig in signatures_seen: continue signatures_seen.add(sig) start_ip, max_range = minmax_ip(prov_comb) providers_final.append([prov_comb, start_ip, max_range]) new_id_list.append(sig) testgen.parametrize(metafunc, argnames, providers_final, ids=new_id_list, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, 'provider_key') for i, argvalue_tuple in enumerate(argvalues): provider_data = cfme_data['management_systems'][ argvalue_tuple[argnames.index('provider_key')]] if provider_data.get('type', False) != 'virtualcenter': continue if 'random_snpsht_mgt_vm' in metafunc.fixturenames: if random_vm_test: argnames, new_argvalues, new_idlist = random_vm_test else: single_index = random.choice(range(len(idlist))) new_idlist = [idlist[single_index]] new_argvalues = argvalues[single_index] argnames.append('random_snpsht_mgt_vm') new_argvalues.append('') new_argvalues = [new_argvalues] random_vm_test.append(argnames) random_vm_test.append(new_argvalues) random_vm_test.append(new_idlist) else: new_idlist = idlist new_argvalues = argvalues testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): new_idlist = [] new_argvalues = [] argnames, argvalues, idlist = testgen.provider_by_type( metafunc, PROVIDER_TYPES, required_fields=['datastores']) argnames += ['datastore'] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) datastores = args['provider'].data.get('datastores', {}) if not datastores: continue for ds in datastores: if not ds.get('test_fleece', False): continue assert ds.get('type', None) in DATASTORE_TYPES,\ 'datastore type must be set to [{}] for smartstate analysis tests'\ .format('|'.join(DATASTORE_TYPES)) argvs = argvalues[i][:] new_argvalues.append(argvs + [datastore.Datastore(ds['name'], args['provider'].key, ds['type'])]) test_id = '{}-{}'.format(args['provider'].key, ds['type']) new_idlist.append(test_id) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): types = ["virtualcenter", "rhevm", "scvmm"] argnames, argvalues, idlist = testgen.provider_by_type(metafunc, types) argnames = ["providers_for_discover", "start_ip", "max_range"] new_id_list = [] providers_complete = [] providers_final = [] for x in idlist: providers_complete.append(get_crud(x)) provider_combinations = sorted(find_neighbour_provider_combinations(providers_complete, len(types)), key=len) signatures_seen = set() for prov_comb in provider_combinations: sig = generate_signature(prov_comb) if sig in signatures_seen: continue signatures_seen.add(sig) start_ip, max_range = minmax_ip(prov_comb) providers_final.append([prov_comb, start_ip, max_range]) new_id_list.append(sig) testgen.parametrize(metafunc, argnames, providers_final, ids=new_id_list, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc) if not idlist: return new_idlist = [] new_argvalues = [] if 'random_pwr_ctl_vm' in metafunc.fixturenames: if random_vm_test: # Reusing random vm for test argnames, new_argvalues, new_idlist = random_vm_test else: # Picking random VM for tests single_index = random.choice(range(len(idlist))) new_idlist = ['random_provider'] new_argvalues = argvalues[single_index] argnames.append('random_pwr_ctl_vm') new_argvalues.append('') new_argvalues = [new_argvalues] random_vm_test.append(argnames) random_vm_test.append(new_argvalues) random_vm_test.append(new_idlist) else: new_idlist = idlist new_argvalues = argvalues testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="class")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers( metafunc, 'provisioning', template_location=["provisioning", "template"]) new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['provisioning']: # No provisioning data available continue if args['provider'].type == "scvmm": continue # required keys should be a subset of the dict keys set if not {'template', 'host', 'datastore'}.issubset(args['provisioning'].viewkeys()): # Need all three for template provisioning continue 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): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.cloud_providers(metafunc, 'provisioning') argnames = argnames + ['cloud_init_template'] new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['provisioning']: # Don't know what type of instance to provision, move on continue if not {'ci-template', 'ci-username', 'ci-pass', 'image'}.issubset( args['provisioning'].viewkeys()): # Need all for template provisioning continue cloud_init_template = args['provisioning']['ci-template'] if cloud_init_template not in cfme_data.get('customization_templates', {}).keys(): continue argvalues[i].append(get_template_from_config(cloud_init_template)) 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): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.cloud_providers(metafunc, 'provisioning') new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['provisioning']: # Don't know what type of instance to provision, move on continue # required keys should be a subset of the dict keys set if not {'image'}.issubset(args['provisioning'].viewkeys()): # Need image for image -> instance provisioning continue if metafunc.function in { test_provision_from_template_with_attached_disks, test_provision_with_boot_volume, test_provision_with_additional_volume} \ and args['provider_type'] != 'openstack': continue new_idlist.append(idlist[i]) new_argvalues.append([args[argname] for argname in argnames]) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
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): argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [VMwareProvider]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope='module')
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.infra_providers( metafunc, required_fields=["vm_analysis"]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.middleware_providers(metafunc) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.provider_by_type( metafunc, ['scvmm'], 'small_template') testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope='module')
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.provider_by_type( metafunc, ['virtualcenter']) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.all_providers( metafunc, required_fields=['ownership_vm']) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.infra_providers( metafunc, "test_vm_power_control") testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.cloud_providers( metafunc, required_fields=[['provisioning', 'image']]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="function")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.providers_by_class(metafunc, [VMwareProvider]) argnames = argnames + ["_host_provider"] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) # TODO # All this should be replaced with a proper ProviderFilter passed to testgen.providers() 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): # Starts at 10 for vane reason: Artifactor report does a naive sort, so 10 comes before 1 ids = [i + 10 for i in xrange(num_copies)] random.shuffle(ids) argvalues = [[v] for v in ids] testgen.parametrize(metafunc, ['param'], argvalues, ids=ids, scope='module')
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, required_fields=[ ['provisioning', 'template'], ['provisioning', 'host'], ['provisioning', 'datastore'] ]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers( metafunc, required_fields=['iso_datastore']) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.provider_by_type( metafunc, ['ec2', 'openstack'], required_fields=[('test_power_control', True)]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="function")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [CloudProvider], required_fields=[('test_power_control', True)]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="function")
def pytest_generate_tests(metafunc): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.cloud_providers( metafunc, required_fields=[['provisioning', 'image']]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without host provisioning data defined argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [InfraProvider], required_fields=[ ['host_provisioning', 'pxe_server'], ['host_provisioning', 'pxe_image'], ['host_provisioning', 'pxe_image_type'], ['host_provisioning', 'pxe_kickstart'], ['host_provisioning', 'datacenter'], ['host_provisioning', 'cluster'], ['host_provisioning', 'datastores'], ['host_provisioning', 'hostname'], ['host_provisioning', 'root_password'], ['host_provisioning', 'ip_addr'], ['host_provisioning', 'subnet_mask'], ['host_provisioning', 'gateway'], ['host_provisioning', 'dns'], ]) pargnames, pargvalues, pidlist = testgen.pxe_servers(metafunc) argnames = argnames + ['pxe_server', 'pxe_cust_template'] pxe_server_names = [pval[0] for pval in pargvalues] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) try: prov_data = args['provider'].data['host_provisioning'] except KeyError: # No host provisioning data available continue stream = prov_data.get('runs_on_stream', '') if not version.current_version().is_in_series(str(stream)): continue pxe_server_name = prov_data.get('pxe_server', '') if pxe_server_name not in pxe_server_names: continue pxe_cust_template = prov_data.get('pxe_kickstart', '') if pxe_cust_template not in cfme_data.get('customization_templates', {}).keys(): continue argvalues[i].append(get_pxe_server_from_config(pxe_server_name)) argvalues[i].append(get_template_from_config(pxe_cust_template)) 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): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.providers_by_class(metafunc, [RHEVMProvider], required_fields=[ ['provisioning', 'ci-template'], ['provisioning', 'ci-username'], ['provisioning', 'ci-pass'], ['provisioning', 'image'] ]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.provider_by_type(metafunc, ['rhevm'], required_fields=[ ['provisioning', 'ci-template'], ['provisioning', 'ci-username'], ['provisioning', 'ci-pass'], ['provisioning', 'image'] ]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.all_providers( metafunc, 'small_template', template_location=["small_template"]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [VMwareProvider]) argnames = argnames + ["_host_provider"] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) # TODO # All this should be replaced with a proper ProviderFilter passed to testgen.providers() 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] ip_address = resolve_hostname(host["name"]) endpoint = DefaultEndpoint(credentials=host["credentials"], hostname=host["name"]) # 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.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"], ip_address=ip_address, endpoints=endpoint, 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): # cfme.rest.services requires several provisioning tags argnames, argvalues, idlist = testgen.infra_providers( metafunc, required_fields=[['provisioning', 'template'], ['provisioning', 'host'], ['provisioning', 'datastore'], ['provisioning', 'iso_file'], ['provisioning', 'vlan'], ['provisioning', 'catalog_item_type']]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope='module')
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [ VMwareProvider, RHEVMProvider, EC2Provider, OpenStackProvider, AzureProvider, GCEProvider ], required_fields=[(['cap_and_util', 'capandu_vm'], 'cu-24x7')]) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): yield if 'rbac_role' in metafunc.fixturenames: if enable_rbac: try: meta_data = metafunc.function.meta roles = meta_data.kwargs['from_docs']['rbac']['roles'].keys() except: raise Exception("Test {} should have metadata describing RBAC roles") else: roles = ['default'] testgen.parametrize(metafunc, 'rbac_role', roles)
def pytest_generate_tests(metafunc): yield if 'rbac_role' in metafunc.fixturenames: if enable_rbac: try: meta_data = metafunc.function.meta roles = meta_data.kwargs['from_docs']['rbac']['roles'].keys() except: raise Exception( "Test {} should have metadata describing RBAC roles") else: roles = ['default'] testgen.parametrize(metafunc, 'rbac_role', roles)
def pytest_generate_tests(metafunc): # Filter out providers not meant for Chargeback Testing argnames, argvalues, idlist = testgen.provider_by_type(metafunc, ['virtualcenter', 'rhevm'], required_fields=[(['cap_and_util', 'test_chargeback'], True)] ) new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): 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): argnames, argvalues, idlist = testgen.infra_providers(metafunc) new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if args["provider"].type in {"scvmm"}: continue 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): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.all_providers(metafunc) # if metafunc.function is not test_ssa_template: argnames.append('analysis_type') new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) # if metafunc.function is test_ssa_template: # new_idlist.append(args['provider'].key) # new_argvalues.append([args["provider"]]) # continue vms = [] provisioning_data = [] try: vma_data = args['provider'].data.get('vm_analysis_new', {}) vms = vma_data.get("vms", {}) provisioning_data = vma_data.get("provisioning", {}) except AttributeError: # Provider has no provisioning and/or vms list set continue for vm_analysis_key in vms: # Each VM can redefine a provisioning data vm_analysis_data = provisioning_data.copy() vm_analysis_data.update(vms[vm_analysis_key]) if not {'image', 'fs-type'}.issubset(vm_analysis_data.viewkeys()): continue if vm_analysis_data['fs-type'] not in ['ntfs', 'fat32']: # Username and password are required for non-windows VMs if not {'username', 'password'}.issubset( vm_analysis_data.viewkeys()): continue # Set VM name here new_idlist.append('{}-{}'.format(idlist[i], vm_analysis_key)) new_argvalues.append([args["provider"], vm_analysis_key]) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): argnames, argvalues, idlist = testgen.providers_by_class(metafunc, [InfraProvider]) new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if args["provider"].type in {"scvmm"}: continue 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): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.cloud_providers(metafunc, 'remove_test') new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args['remove_test']: # Don't know what type of instance to provision, move on continue 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): # Filter out providers not meant for Chargeback Testing argnames, argvalues, idlist = testgen.providers_by_class( metafunc, [VMwareProvider, RHEVMProvider], required_fields=[(['cap_and_util', 'test_chargeback'], True)] ) new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): 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): final_argv, final_ids = [], [] # Get all providers and pick those, that have power control test enabled argnames, argvalues, idlist = testgen.provider_by_type( metafunc, ['ec2', 'openstack'], 'test_power_control') for argn, argv, single_id in zip(argnames, argvalues, idlist): test_pwr_ctl_i = argnames.index('test_power_control') provider = argnames.index('provider') if argv[test_pwr_ctl_i] is True: final_argv.append(argv) final_ids.append(argv[provider].key) testgen.parametrize(metafunc, argnames, final_argv, ids=final_ids, scope="function")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.config_managers(metafunc) new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args["config_manager_obj"].yaml_data['provisioning']: continue 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): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.all_providers(metafunc) new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if metafunc.function in {test_vm_genealogy_detected} and args["provider"].type in {"scvmm", "rhevm"}: continue 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): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, "iso_datastore") new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args["iso_datastore"]: # No provisioning data available continue 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): # Filter out providers without templates defined argnames, argvalues, idlist = testgen.all_providers(metafunc) # if metafunc.function is not test_ssa_template: argnames.append('analysis_type') new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) # if metafunc.function is test_ssa_template: # new_idlist.append(args['provider'].key) # new_argvalues.append([args["provider"]]) # continue vms = [] provisioning_data = [] try: vma_data = args['provider'].data.get('vm_analysis_new', {}) vms = vma_data.get("vms", {}) provisioning_data = vma_data.get("provisioning", {}) except AttributeError: # Provider has no provisioning and/or vms list set continue for vm_analysis_key in vms: # Each VM can redefine a provisioning data vm_analysis_data = provisioning_data.copy() vm_analysis_data.update(vms[vm_analysis_key]) if not {'image', 'fs-type'}.issubset( vm_analysis_data.viewkeys()): continue if vm_analysis_data['fs-type'] not in ['ntfs', 'fat32']: # Username and password are required for non-windows VMs if not {'username', 'password'}.issubset( vm_analysis_data.viewkeys()): continue # Set VM name here new_idlist.append('{}-{}'.format(idlist[i], vm_analysis_key)) new_argvalues.append([args["provider"], vm_analysis_key]) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without multiple hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, required_fields=["hosts"]) new_argvalues = [] new_idlist = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) hosts = args['provider'].data.get('hosts', {}) if len(hosts) < 2: continue 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): p_argn, p_argv, p_ids = testgen.infra_providers(metafunc, "hosts") argnames = ["provider_key", "host_type", "host_name"] argvalues = [] idlist = [] for argv in p_argv: prov_hosts, prov_key = argv[0], argv[1] if not prov_hosts: continue for test_host in prov_hosts: if not test_host.get("test_fleece", False): continue argvalues.append([prov_key, test_host["type"], test_host["name"]]) test_id = "{}-{}-{}".format(prov_key, test_host["type"], test_host["name"]) idlist.append(test_id) testgen.parametrize(metafunc, argnames, argvalues, ids=idlist, scope="module")
def pytest_generate_tests(metafunc): # Filter out providers without provisioning data or hosts defined argnames, argvalues, idlist = testgen.infra_providers(metafunc, "provisioning") argnames = argnames + ["iso_cust_template", "iso_datastore"] new_idlist = [] new_argvalues = [] for i, argvalue_tuple in enumerate(argvalues): args = dict(zip(argnames, argvalue_tuple)) if not args["provisioning"]: # No provisioning data available continue if args["provider_type"] == "scvmm": continue provider_data = cfme_data.get("management_systems", {})[argvalue_tuple[argnames.index("provider_key")]] if not provider_data.get("iso_datastore", False): continue # required keys should be a subset of the dict keys set if not { "iso_template", "host", "datastore", "iso_file", "iso_kickstart", "iso_root_password", "iso_image_type", "vlan", }.issubset(args["provisioning"].viewkeys()): # Need all for template provisioning continue iso_cust_template = args["provisioning"]["iso_kickstart"] if iso_cust_template not in cfme_data.get("customization_templates", {}).keys(): continue argvalues[i].append(get_template_from_config(iso_cust_template)) argvalues[i].append(ISODatastore(provider_data["name"])) new_idlist.append(idlist[i]) new_argvalues.append(argvalues[i]) testgen.parametrize(metafunc, argnames, new_argvalues, ids=new_idlist, scope="module")