[OE-core] [PATCH 02/10] oetest.py: Move getTests() outside loadTests() method

mariano.lopez at linux.intel.com mariano.lopez at linux.intel.com
Tue May 24 12:44:11 UTC 2016


From: Mariano Lopez <mariano.lopez at linux.intel.com>

The method getTests() can be useful to all the class,
not just to loadTests().

[YOCTO #8694]

Signed-off-by: Mariano Lopez <mariano.lopez at linux.intel.com>
---
 meta/lib/oeqa/oetest.py | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
index 70db119..8ad3715 100644
--- a/meta/lib/oeqa/oetest.py
+++ b/meta/lib/oeqa/oetest.py
@@ -264,6 +264,22 @@ class TestContext(object):
 
         return testslist
 
+    def getTests(self, test):
+        '''Return all individual tests executed when running the suite.'''
+        # Unfortunately unittest does not have an API for this, so we have
+        # to rely on implementation details. This only needs to work
+        # for TestSuite containing TestCase.
+        method = getattr(test, '_testMethodName', None)
+        if method:
+            # leaf case: a TestCase
+            yield test
+        else:
+            # Look into TestSuite.
+            tests = getattr(test, '_tests', [])
+            for t1 in tests:
+                for t2 in self.getTests(t1):
+                    yield t2
+
     def loadTests(self):
         setattr(oeTest, "tc", self)
 
@@ -272,36 +288,20 @@ class TestContext(object):
         suites = [testloader.loadTestsFromName(name) for name in self.testslist]
         suites = filterByTagExp(suites, getattr(self, "tagexp", None))
 
-        def getTests(test):
-            '''Return all individual tests executed when running the suite.'''
-            # Unfortunately unittest does not have an API for this, so we have
-            # to rely on implementation details. This only needs to work
-            # for TestSuite containing TestCase.
-            method = getattr(test, '_testMethodName', None)
-            if method:
-                # leaf case: a TestCase
-                yield test
-            else:
-                # Look into TestSuite.
-                tests = getattr(test, '_tests', [])
-                for t1 in tests:
-                    for t2 in getTests(t1):
-                        yield t2
-
         # Determine dependencies between suites by looking for @skipUnlessPassed
         # method annotations. Suite A depends on suite B if any method in A
         # depends on a method on B.
         for suite in suites:
             suite.dependencies = []
             suite.depth = 0
-            for test in getTests(suite):
+            for test in self.getTests(suite):
                 methodname = getattr(test, '_testMethodName', None)
                 if methodname:
                     method = getattr(test, methodname)
                     depends_on = getattr(method, '_depends_on', None)
                     if depends_on:
                         for dep_suite in suites:
-                            if depends_on in [getattr(t, '_testMethodName', None) for t in getTests(dep_suite)]:
+                            if depends_on in [getattr(t, '_testMethodName', None) for t in self.getTests(dep_suite)]:
                                 if dep_suite not in suite.dependencies and \
                                    dep_suite is not suite:
                                     suite.dependencies.append(dep_suite)
-- 
2.6.6




More information about the Openembedded-core mailing list