1*c342db35SBrad Bishop# 2eb8dc403SDave Cobbley# Copyright (C) 2016 Intel Corporation 3*c342db35SBrad Bishop# 4*c342db35SBrad Bishop# SPDX-License-Identifier: MIT 5*c342db35SBrad Bishop# 6eb8dc403SDave Cobbley 7eb8dc403SDave Cobbleyimport os 8eb8dc403SDave Cobbleyimport inspect 9eb8dc403SDave Cobbleyimport unittest 10eb8dc403SDave Cobbley 11eb8dc403SDave Cobbleydef getSuiteCases(suite): 12eb8dc403SDave Cobbley """ 13eb8dc403SDave Cobbley Returns individual test from a test suite. 14eb8dc403SDave Cobbley """ 15eb8dc403SDave Cobbley tests = [] 16eb8dc403SDave Cobbley 17eb8dc403SDave Cobbley if isinstance(suite, unittest.TestCase): 18eb8dc403SDave Cobbley tests.append(suite) 19eb8dc403SDave Cobbley elif isinstance(suite, unittest.suite.TestSuite): 20eb8dc403SDave Cobbley for item in suite: 21eb8dc403SDave Cobbley tests.extend(getSuiteCases(item)) 22eb8dc403SDave Cobbley 23eb8dc403SDave Cobbley return tests 24eb8dc403SDave Cobbley 25eb8dc403SDave Cobbleydef getSuiteModules(suite): 26eb8dc403SDave Cobbley """ 27eb8dc403SDave Cobbley Returns modules in a test suite. 28eb8dc403SDave Cobbley """ 29eb8dc403SDave Cobbley modules = set() 30eb8dc403SDave Cobbley for test in getSuiteCases(suite): 31eb8dc403SDave Cobbley modules.add(getCaseModule(test)) 32eb8dc403SDave Cobbley return modules 33eb8dc403SDave Cobbley 34eb8dc403SDave Cobbleydef getSuiteCasesInfo(suite, func): 35eb8dc403SDave Cobbley """ 36eb8dc403SDave Cobbley Returns test case info from suite. Info is fetched from func. 37eb8dc403SDave Cobbley """ 38eb8dc403SDave Cobbley tests = [] 39eb8dc403SDave Cobbley for test in getSuiteCases(suite): 40eb8dc403SDave Cobbley tests.append(func(test)) 41eb8dc403SDave Cobbley return tests 42eb8dc403SDave Cobbley 43eb8dc403SDave Cobbleydef getSuiteCasesNames(suite): 44eb8dc403SDave Cobbley """ 45eb8dc403SDave Cobbley Returns test case names from suite. 46eb8dc403SDave Cobbley """ 47eb8dc403SDave Cobbley return getSuiteCasesInfo(suite, getCaseMethod) 48eb8dc403SDave Cobbley 49eb8dc403SDave Cobbleydef getSuiteCasesIDs(suite): 50eb8dc403SDave Cobbley """ 51eb8dc403SDave Cobbley Returns test case ids from suite. 52eb8dc403SDave Cobbley """ 53eb8dc403SDave Cobbley return getSuiteCasesInfo(suite, getCaseID) 54eb8dc403SDave Cobbley 55eb8dc403SDave Cobbleydef getSuiteCasesFiles(suite): 56eb8dc403SDave Cobbley """ 57eb8dc403SDave Cobbley Returns test case files paths from suite. 58eb8dc403SDave Cobbley """ 59eb8dc403SDave Cobbley return getSuiteCasesInfo(suite, getCaseFile) 60eb8dc403SDave Cobbley 61eb8dc403SDave Cobbleydef getCaseModule(test_case): 62eb8dc403SDave Cobbley """ 63eb8dc403SDave Cobbley Returns test case module name. 64eb8dc403SDave Cobbley """ 65eb8dc403SDave Cobbley return test_case.__module__ 66eb8dc403SDave Cobbley 67eb8dc403SDave Cobbleydef getCaseClass(test_case): 68eb8dc403SDave Cobbley """ 69eb8dc403SDave Cobbley Returns test case class name. 70eb8dc403SDave Cobbley """ 71eb8dc403SDave Cobbley return test_case.__class__.__name__ 72eb8dc403SDave Cobbley 73eb8dc403SDave Cobbleydef getCaseID(test_case): 74eb8dc403SDave Cobbley """ 75eb8dc403SDave Cobbley Returns test case complete id. 76eb8dc403SDave Cobbley """ 77eb8dc403SDave Cobbley return test_case.id() 78eb8dc403SDave Cobbley 79eb8dc403SDave Cobbleydef getCaseFile(test_case): 80eb8dc403SDave Cobbley """ 81eb8dc403SDave Cobbley Returns test case file path. 82eb8dc403SDave Cobbley """ 83eb8dc403SDave Cobbley return inspect.getsourcefile(test_case.__class__) 84eb8dc403SDave Cobbley 85eb8dc403SDave Cobbleydef getCaseMethod(test_case): 86eb8dc403SDave Cobbley """ 87eb8dc403SDave Cobbley Returns test case method name. 88eb8dc403SDave Cobbley """ 89eb8dc403SDave Cobbley return getCaseID(test_case).split('.')[-1] 90