aboutsummaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-01-20 21:29:41 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-01-23 11:35:27 +0000
commit78d3bf2e4c88779df32b9dfbe8362dc24e9ad080 (patch)
tree070992a50350fd62e763a73ec42f50305301f420 /meta/lib
parent9dafa571ed0a40d21a886dec7704c31150b21942 (diff)
downloadopenembedded-core-contrib-78d3bf2e4c88779df32b9dfbe8362dc24e9ad080.tar.gz
oeqa/utils/decorators: Try and improve ugly _ErrorHandler tracebacks
Currently, if one module is skipped, any other module calling skipModule causes tracebacks about _ErrorHandler not having a _testMethodName method. This reworks the code in a way to avoid some of the problems by using the id() method of the objects. It also maps to the correct name format rather than "setupModule" or just skiping the item entirely. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/utils/decorators.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/meta/lib/oeqa/utils/decorators.py b/meta/lib/oeqa/utils/decorators.py
index 2d5db2474a2..ff5f278bc1c 100644
--- a/meta/lib/oeqa/utils/decorators.py
+++ b/meta/lib/oeqa/utils/decorators.py
@@ -18,14 +18,21 @@ class getResults(object):
upperf = sys._current_frames().values()[0]
while (upperf.f_globals['__name__'] != 'unittest.case'):
upperf = upperf.f_back
- self.faillist = [ seq[0]._testMethodName for seq in upperf.f_locals['result'].failures ]
- self.errorlist = [ seq[0]._testMethodName for seq in upperf.f_locals['result'].errors ]
- #ignore the _ErrorHolder objects from the skipped tests list
- self.skiplist = []
- for seq in upperf.f_locals['result'].skipped:
- try:
- self.skiplist.append(seq[0]._testMethodName)
- except: pass
+
+ def handleList(items):
+ ret = []
+ # items is a list of tuples, (test, failure) or (_ErrorHandler(), Exception())
+ for i in items:
+ s = i[0].id()
+ #Handle the _ErrorHolder objects from skipModule failures
+ if "setUpModule (" in s:
+ ret.append(s.replace("setUpModule (", "").replace(")",""))
+ else:
+ ret.append(s)
+ return ret
+ self.faillist = handleList(upperf.f_locals['result'].failures)
+ self.errorlist = handleList(upperf.f_locals['result'].errors)
+ self.skiplist = handleList(upperf.f_locals['result'].skipped)
def getFailList(self):
return self.faillist