oeqa/core: Add utils module for OEQA framework
misc: Functions for transform object to other types. path: Functions for path handling. test: Functions for operations related to test cases and suites. [YOCTO #10232] (From OE-Core rev: 102d04ccca3ca89d41b76a8c44e0ca0f436b7004) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
08714d3b7e
commit
abb55ab304
|
@ -0,0 +1,37 @@
|
|||
# Copyright (C) 2016 Intel Corporation
|
||||
# Released under the MIT license (see COPYING.MIT)
|
||||
|
||||
def toList(obj, obj_type, obj_name="Object"):
|
||||
if isinstance(obj, obj_type):
|
||||
return [obj]
|
||||
elif isinstance(obj, list):
|
||||
return obj
|
||||
else:
|
||||
raise TypeError("%s must be %s or list" % (obj_name, obj_type))
|
||||
|
||||
def toSet(obj, obj_type, obj_name="Object"):
|
||||
if isinstance(obj, obj_type):
|
||||
return {obj}
|
||||
elif isinstance(obj, list):
|
||||
return set(obj)
|
||||
elif isinstance(obj, set):
|
||||
return obj
|
||||
else:
|
||||
raise TypeError("%s must be %s or set" % (obj_name, obj_type))
|
||||
|
||||
def strToList(obj, obj_name="Object"):
|
||||
return toList(obj, str, obj_name)
|
||||
|
||||
def strToSet(obj, obj_name="Object"):
|
||||
return toSet(obj, str, obj_name)
|
||||
|
||||
def intToList(obj, obj_name="Object"):
|
||||
return toList(obj, int, obj_name)
|
||||
|
||||
def dataStoteToDict(d, variables):
|
||||
data = {}
|
||||
|
||||
for v in variables:
|
||||
data[v] = d.getVar(v, True)
|
||||
|
||||
return data
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright (C) 2016 Intel Corporation
|
||||
# Released under the MIT license (see COPYING.MIT)
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
def findFile(file_name, directory):
|
||||
"""
|
||||
Search for a file in directory and returns its complete path.
|
||||
"""
|
||||
for r, d, f in os.walk(directory):
|
||||
if file_name in f:
|
||||
return os.path.join(r, file_name)
|
||||
return None
|
||||
|
||||
def remove_safe(path):
|
||||
if os.path.exists(path):
|
||||
os.remove(path)
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
# Copyright (C) 2016 Intel Corporation
|
||||
# Released under the MIT license (see COPYING.MIT)
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
def getSuiteCases(suite):
|
||||
"""
|
||||
Returns individual test from a test suite.
|
||||
"""
|
||||
tests = []
|
||||
for item in suite:
|
||||
if isinstance(item, unittest.suite.TestSuite):
|
||||
tests.extend(getSuiteCases(item))
|
||||
elif isinstance(item, unittest.TestCase):
|
||||
tests.append(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 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 getCaseMethod(test_case):
|
||||
"""
|
||||
Returns test case method name.
|
||||
"""
|
||||
return getCaseID(test_case).split('.')[-1]
|
Loading…
Reference in New Issue