diff options
Diffstat (limited to 'poky/meta/lib/oeqa/core/decorator')
-rw-r--r-- | poky/meta/lib/oeqa/core/decorator/data.py | 14 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/core/decorator/depends.py | 16 |
2 files changed, 23 insertions, 7 deletions
diff --git a/poky/meta/lib/oeqa/core/decorator/data.py b/poky/meta/lib/oeqa/core/decorator/data.py index 31c6dd6be..f0f65abb3 100644 --- a/poky/meta/lib/oeqa/core/decorator/data.py +++ b/poky/meta/lib/oeqa/core/decorator/data.py @@ -54,6 +54,20 @@ class skipIfNotDataVar(OETestDecorator): self.case.skipTest(self.msg) @registerDecorator +class skipIfInDataVar(OETestDecorator): + """ + Skip test if value is in data store's variable. + """ + + attrs = ('var', 'value', 'msg') + def setUpDecorator(self): + msg = ('Checking if %r value contains %r to skip ' + 'the test' % (self.var, self.value)) + self.logger.debug(msg) + if self.value in (self.case.td.get(self.var)): + self.case.skipTest(self.msg) + +@registerDecorator class skipIfNotInDataVar(OETestDecorator): """ Skip test if value is not in data store's variable. diff --git a/poky/meta/lib/oeqa/core/decorator/depends.py b/poky/meta/lib/oeqa/core/decorator/depends.py index 69c604d8f..950dbaa67 100644 --- a/poky/meta/lib/oeqa/core/decorator/depends.py +++ b/poky/meta/lib/oeqa/core/decorator/depends.py @@ -63,13 +63,15 @@ def _order_test_case_by_depends(cases, depends): return [cases[case_id] for case_id in cases_ordered] def _skipTestDependency(case, depends): - skipReasons = ['errors', 'failures', 'skipped'] - - for reason in skipReasons: - for test, _ in getattr(case.tc.results, reason): - if test.id() in depends: - raise SkipTest("Test case %s depends on %s and was in %s." \ - % (case.id(), test.id(), reason)) + for dep in depends: + found = False + for test, _ in case.tc.results.successes: + if test.id() == dep: + found = True + break + if not found: + raise SkipTest("Test case %s depends on %s but it didn't pass/run." \ + % (case.id(), dep)) @registerDecorator class OETestDepends(OETestDiscover): |