mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
oeqa/core/loader: Allow unittest.TestCase's to be executed
Currently there was a restriction to only execute tests that's inherits from OETestCase but in some circunstancies the features from the OEQA framework isn't needed so we need to support basic unittests. [YOCTO #10828] (From OE-Core rev: baac26f1b36e89e07637b738dd31ec7356f05a02) Signed-off-by: Aníbal Limón <anibal.limon@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:
committed by
Richard Purdie
parent
c3587b7d10
commit
0b168b269b
@@ -185,7 +185,7 @@ class OETestLoader(unittest.TestLoader):
|
||||
return True
|
||||
|
||||
# Decorator filters
|
||||
if self.filters:
|
||||
if self.filters and isinstance(case, OETestCase):
|
||||
filters = self.filters.copy()
|
||||
case_decorators = [cd for cd in case.decorators
|
||||
if cd.__class__ in self.used_filters]
|
||||
@@ -203,7 +203,8 @@ class OETestLoader(unittest.TestLoader):
|
||||
return False
|
||||
|
||||
def _getTestCase(self, testCaseClass, tcName):
|
||||
if not hasattr(testCaseClass, '__oeqa_loader'):
|
||||
if not hasattr(testCaseClass, '__oeqa_loader') and \
|
||||
issubclass(testCaseClass, OETestCase):
|
||||
# In order to support data_vars validation
|
||||
# monkey patch the default setUp/tearDown{Class} to use
|
||||
# the ones provided by OETestCase
|
||||
@@ -230,7 +231,8 @@ class OETestLoader(unittest.TestLoader):
|
||||
setattr(testCaseClass, '__oeqa_loader', True)
|
||||
|
||||
case = testCaseClass(tcName)
|
||||
setattr(case, 'decorators', [])
|
||||
if isinstance(case, OETestCase):
|
||||
setattr(case, 'decorators', [])
|
||||
|
||||
return case
|
||||
|
||||
@@ -242,9 +244,9 @@ class OETestLoader(unittest.TestLoader):
|
||||
raise TypeError("Test cases should not be derived from TestSuite." \
|
||||
" Maybe you meant to derive %s from TestCase?" \
|
||||
% testCaseClass.__name__)
|
||||
if not issubclass(testCaseClass, self.caseClass):
|
||||
if not issubclass(testCaseClass, unittest.case.TestCase):
|
||||
raise TypeError("Test %s is not derived from %s" % \
|
||||
(testCaseClass.__name__, self.caseClass.__name__))
|
||||
(testCaseClass.__name__, unittest.case.TestCase.__name__))
|
||||
|
||||
testCaseNames = self.getTestCaseNames(testCaseClass)
|
||||
if not testCaseNames and hasattr(testCaseClass, 'runTest'):
|
||||
|
||||
@@ -121,9 +121,10 @@ class OETestResult(_TestResult):
|
||||
break
|
||||
|
||||
oeid = -1
|
||||
for d in case.decorators:
|
||||
if hasattr(d, 'oeid'):
|
||||
oeid = d.oeid
|
||||
if hasattr(case, 'decorators'):
|
||||
for d in case.decorators:
|
||||
if hasattr(d, 'oeid'):
|
||||
oeid = d.oeid
|
||||
|
||||
if fail:
|
||||
self.tc.logger.info("RESULTS - %s - Testcase %s: %s" % (case.id(),
|
||||
@@ -188,9 +189,10 @@ class OETestRunner(_TestRunner):
|
||||
def _list_cases_without_id(logger, case):
|
||||
|
||||
found_id = False
|
||||
for d in case.decorators:
|
||||
if isinstance(d, OETestID):
|
||||
found_id = True
|
||||
if hasattr(case, 'decorators'):
|
||||
for d in case.decorators:
|
||||
if isinstance(d, OETestID):
|
||||
found_id = True
|
||||
|
||||
if not found_id:
|
||||
logger.info('oeid missing for %s' % case.id())
|
||||
@@ -199,11 +201,12 @@ class OETestRunner(_TestRunner):
|
||||
oeid = None
|
||||
oetag = None
|
||||
|
||||
for d in case.decorators:
|
||||
if isinstance(d, OETestID):
|
||||
oeid = d.oeid
|
||||
elif isinstance(d, OETestTag):
|
||||
oetag = d.oetag
|
||||
if hasattr(case, 'decorators'):
|
||||
for d in case.decorators:
|
||||
if isinstance(d, OETestID):
|
||||
oeid = d.oeid
|
||||
elif isinstance(d, OETestTag):
|
||||
oetag = d.oetag
|
||||
|
||||
logger.info("%s\t%s\t\t%s" % (oeid, oetag, case.id()))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user