mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
selftest/seltest.py: Add test to check imports from other layers
This tests adds a check of selftest itself to verify if can add test from other layers. [YOCTO #9770] (From OE-Core rev: 4fe4c408246b9a4a563106d097876e6caefca694) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
3e71c57780
commit
f44c923bb9
16
meta-selftest/lib/oeqa/selftest/cases/external-layer.py
Normal file
16
meta-selftest/lib/oeqa/selftest/cases/external-layer.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
#from oeqa.selftest.base import oeSelfTest
|
||||
from oeqa.selftest.case import OESelftestTestCase
|
||||
#from oeqa.utils.decorators import testcase
|
||||
|
||||
|
||||
class ImportedTests(OESelftestTestCase):
|
||||
|
||||
def test_unconditional_pass(self):
|
||||
"""
|
||||
Summary: Doesn't check anything, used to check import test from other layers.
|
||||
Expected: 1. Pass unconditionally
|
||||
Product: oe-core
|
||||
Author: Mariano Lopez <mariano.lopez@intel.com
|
||||
"""
|
||||
|
||||
self.assertEqual(True, True, msg = "Impossible to fail this test")
|
51
meta/lib/oeqa/selftest/cases/selftest.py
Normal file
51
meta/lib/oeqa/selftest/cases/selftest.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
import importlib
|
||||
from oeqa.utils.commands import runCmd
|
||||
import oeqa.selftest
|
||||
from oeqa.selftest.case import OESelftestTestCase
|
||||
from oeqa.core.decorator.oeid import OETestID
|
||||
|
||||
class ExternalLayer(OESelftestTestCase):
|
||||
|
||||
@OETestID(1885)
|
||||
def test_list_imported(self):
|
||||
"""
|
||||
Summary: Checks functionality to import tests from other layers.
|
||||
Expected: 1. File "external-layer.py" must be in
|
||||
oeqa.selftest.__path__
|
||||
2. test_unconditional_pas method must exists
|
||||
in ImportedTests class
|
||||
Product: oe-core
|
||||
Author: Mariano Lopez <mariano.lopez@intel.com>
|
||||
"""
|
||||
|
||||
test_file = "external-layer.py"
|
||||
test_module = "oeqa.selftest.cases.external-layer"
|
||||
method_name = "test_unconditional_pass"
|
||||
|
||||
# Check if "external-layer.py" is in oeqa path
|
||||
found_file = search_test_file(test_file)
|
||||
self.assertTrue(found_file, msg="Can't find %s in the oeqa path" % test_file)
|
||||
|
||||
# Import oeqa.selftest.external-layer module and search for
|
||||
# test_unconditional_pass method of ImportedTests class
|
||||
found_method = search_method(test_module, method_name)
|
||||
self.assertTrue(method_name, msg="Can't find %s method" % method_name)
|
||||
|
||||
def search_test_file(file_name):
|
||||
for layer_path in oeqa.selftest.__path__:
|
||||
for _, _, files in os.walk(layer_path):
|
||||
for f in files:
|
||||
if f == file_name:
|
||||
return True
|
||||
return False
|
||||
|
||||
def search_method(module, method):
|
||||
modlib = importlib.import_module(module)
|
||||
for var in vars(modlib):
|
||||
klass = vars(modlib)[var]
|
||||
if isinstance(klass, type(OESelftestTestCase)) and issubclass(klass, OESelftestTestCase):
|
||||
for m in dir(klass):
|
||||
if m == method:
|
||||
return True
|
||||
return False
|
||||
|
Loading…
Reference in New Issue
Block a user