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