[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4228/8267] oeqa/core/decorator/data.py: Add skipIfNotFeature decorator



commit bfe20fd23cb1efec9289ba5a2486234e6c8a0549
Author: Mariano Lopez <mariano lopez linux intel com>
Date:   Fri Dec 2 16:05:44 2016 -0600

    oeqa/core/decorator/data.py: Add skipIfNotFeature decorator
    
    This adds a new decorator to check if image under tests has
    certain DISTRO_FEATURE or IMAGE_FEATURE.
    
    [YOCTO #10234]
    
    (From OE-Core rev: 8740803d0696a0e97b72210a56f4fbd3135826ed)
    
    Signed-off-by: Mariano Lopez <mariano lopez linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/lib/oeqa/core/decorator/data.py |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/meta/lib/oeqa/core/decorator/data.py b/meta/lib/oeqa/core/decorator/data.py
index 73cca88..fdeba9f 100644
--- a/meta/lib/oeqa/core/decorator/data.py
+++ b/meta/lib/oeqa/core/decorator/data.py
@@ -5,6 +5,16 @@ from oeqa.core.exception import OEQAMissingVariable
 
 from . import OETestDecorator, registerDecorator
 
+def has_feature(td, feature):
+    """
+        Checks for feature in DISTRO_FEATURES or IMAGE_FEATURES.
+    """
+
+    if (feature in td.get('DISTRO_FEATURES', '') or
+        feature in td.get('IMAGE_FEATURES', '')):
+        return True
+    return False
+
 @registerDecorator
 class skipIfDataVar(OETestDecorator):
     """
@@ -34,3 +44,21 @@ class OETestDataDepends(OETestDecorator):
             except KeyError:
                 raise OEQAMissingVariable("Test case need %s variable but"\
                         " isn't into td" % v)
+
+@registerDecorator
+class skipIfNotFeature(OETestDecorator):
+    """
+        Skip test based on DISTRO_FEATURES.
+
+        value must be in distro features or it will skip the test
+        with msg as the reason.
+    """
+
+    attrs = ('value', 'msg')
+
+    def setUpDecorator(self):
+        msg = ('Checking if %s is in DISTRO_FEATURES '
+               'or IMAGE_FEATURES' % (self.value))
+        self.logger.debug(msg)
+        if not has_feature(self.case.td, self.value):
+            self.case.skipTest(self.msg)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]