poky/meta/lib/oeqa/selftest/cases/selftest.py
Richard Purdie c7592b0147 oeqa: Drop OETestID
These IDs refer to testopia which we're no longer using. We would now use the test
names to definitively reference tests and the IDs can be dropped, along with their
supporting code.

(From OE-Core rev: 8e2d0575e4e7036b5f60e632f377a8ab2b96ead8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-09 16:31:55 +01:00

50 lines
1.7 KiB
Python

import importlib
from oeqa.utils.commands import runCmd
import oeqa.selftest
from oeqa.selftest.case import OESelftestTestCase
class ExternalLayer(OESelftestTestCase):
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