def get_test_provider_info(provider): """ Get a dictionary with relevant test provider info, such as: * provider uri (git repo or filesystem location) * provider git repo data, such as branch, ref, pubkey * backends that this provider has tests for. For each backend type the provider has tests for, the 'path' will be also available. :param provider: Test provider name, such as 'io-github-autotest-qemu'. """ provider_info = {} provider_path = os.path.join(data_dir.get_test_providers_dir(), '%s.ini' % provider) provider_cfg = test_config.config_loader(provider_path) provider_info['name'] = provider provider_info['uri'] = provider_cfg.get('provider', 'uri') provider_info['branch'] = provider_cfg.get('provider', 'branch', 'master') provider_info['ref'] = provider_cfg.get('provider', 'ref') provider_info['pubkey'] = provider_cfg.get('provider', 'pubkey') provider_info['backends'] = {} for backend in get_known_backends(): subdir = provider_cfg.get(backend, 'subdir') if subdir is not None: if provider_info['uri'].startswith('file://'): src = os.path.join(provider_info['uri'][7:], subdir) else: src = os.path.join(data_dir.get_test_provider_dir(provider), subdir) provider_info['backends'].update({backend: {'path': src}}) return provider_info
def get_test_provider_info(provider): """ Get a dictionary with relevant test provider info, such as: * provider uri (git repo or filesystem location) * provider git repo data, such as branch, ref, pubkey * backends that this provider has tests for. For each backend type the provider has tests for, the 'path' will be also available. :param provider: Test provider name, such as 'io-github-autotest-qemu'. """ provider_info = {} provider_path = os.path.join(data_dir.get_test_providers_dir(), "%s.ini" % provider) provider_cfg = test_config.config_loader(provider_path) provider_info["name"] = provider provider_info["uri"] = provider_cfg.get("provider", "uri") provider_info["branch"] = provider_cfg.get("provider", "branch", "master") provider_info["ref"] = provider_cfg.get("provider", "ref") provider_info["pubkey"] = provider_cfg.get("provider", "pubkey") provider_info["backends"] = {} for backend in get_known_backends(): subdir = provider_cfg.get(backend, "subdir") if subdir is not None: if provider_info["uri"].startswith("file://"): src = os.path.join(provider_info["uri"][7:], subdir) else: src = os.path.join(data_dir.get_test_provider_dir(provider), subdir) provider_info["backends"].update({backend: {"path": src}}) return provider_info
def get_test_provider_names(backend=None): """ Get the names of all test providers available in test-providers.d. :return: List with the names of all test providers. """ provider_name_list = [] provider_dir = data_dir.get_test_providers_dir() for provider in glob.glob(os.path.join(provider_dir, '*.ini')): provider_name = os.path.basename(provider).split('.')[0] provider_info = get_test_provider_info(provider_name) if backend is not None: if backend in provider_info['backends']: provider_name_list.append(provider_name) else: provider_name_list.append(provider_name) return provider_name_list