| # |
| # 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] |