[gnome-continuous-yocto/gnomeostree-3.28-rocko: 6218/8267] oeqa/core/loader: Allow unittest.TestCase's to be executed
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 6218/8267] oeqa/core/loader: Allow unittest.TestCase's to be executed
- Date: Sun, 17 Dec 2017 04:32:11 +0000 (UTC)
commit 0b168b269b497383d01e71db585235948b71a3f8
Author: Aníbal Limón <anibal limon linux intel com>
Date: Thu Jun 8 11:32:05 2017 -0500
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>
meta/lib/oeqa/core/loader.py | 12 +++++++-----
meta/lib/oeqa/core/runner.py | 25 ++++++++++++++-----------
2 files changed, 21 insertions(+), 16 deletions(-)
---
diff --git a/meta/lib/oeqa/core/loader.py b/meta/lib/oeqa/core/loader.py
index 166fc35..d110881 100644
--- a/meta/lib/oeqa/core/loader.py
+++ b/meta/lib/oeqa/core/loader.py
@@ -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'):
diff --git a/meta/lib/oeqa/core/runner.py b/meta/lib/oeqa/core/runner.py
index 7ce718e..532b25b 100644
--- a/meta/lib/oeqa/core/runner.py
+++ b/meta/lib/oeqa/core/runner.py
@@ -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()))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]