blob: d38cab8a511aa35fa9e6cfe35987c61aa06e3d85 [file] [log] [blame]
#
# 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]