# # Copyright (C) 2016 Intel Corporation # # SPDX-License-Identifier: MIT # import os import inspect import unittest def getSuiteCases(suite): """ Returns individual test from a test suite. """ tests = [] if isinstance(suite, unittest.TestCase): tests.append(suite) elif isinstance(suite, unittest.suite.TestSuite): for item in suite: tests.extend(getSuiteCases(item)) return tests def getSuiteModules(suite): """ Returns modules in a test suite. """ modules = set() for test in getSuiteCases(suite): modules.add(getCaseModule(test)) return modules def getSuiteCasesInfo(suite, func): """ Returns test case info from suite. Info is fetched from func. """ tests = [] for test in getSuiteCases(suite): tests.append(func(test)) return tests def getSuiteCasesNames(suite): """ Returns test case names from suite. """ return getSuiteCasesInfo(suite, getCaseMethod) def getSuiteCasesIDs(suite): """ Returns test case ids from suite. """ return getSuiteCasesInfo(suite, getCaseID) def getSuiteCasesFiles(suite): """ Returns test case files paths from suite. """ return getSuiteCasesInfo(suite, getCaseFile) def getCaseModule(test_case): """ Returns test case module name. """ return test_case.__module__ def getCaseClass(test_case): """ Returns test case class name. """ return test_case.__class__.__name__ def getCaseID(test_case): """ Returns test case complete id. """ return test_case.id() def getCaseFile(test_case): """ Returns test case file path. """ return inspect.getsourcefile(test_case.__class__) def getCaseMethod(test_case): """ Returns test case method name. """ return getCaseID(test_case).split('.')[-1]