mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 03:32:13 +02:00
oeqa/decorators: Fixed a problem with tests having the same names.
When two or more tests had the same name but different classes then the decorator log whould have the output all wrong. This was because a comparison which was made only between method names but now it compares classes too. [YOCTO #8029] (From OE-Core rev: 2b475f82d13b5c04d0c483d11a7df5e9352caa75) Signed-off-by: Lucian Musat <george.l.musat@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
e59b8176d2
commit
4925fa08e1
@@ -116,13 +116,14 @@ def LogResults(original_class):
|
||||
orig_method(self, result, *args, **kws)
|
||||
passed = True
|
||||
testMethod = getattr(self, self._testMethodName)
|
||||
|
||||
#if test case is decorated then use it's number, else use it's name
|
||||
try:
|
||||
test_case = testMethod.test_case
|
||||
except AttributeError:
|
||||
test_case = self._testMethodName
|
||||
|
||||
class_name = str(testMethod.im_class).split("'")[1]
|
||||
|
||||
#create custom logging level for filtering.
|
||||
custom_log_level = 100
|
||||
logging.addLevelName(custom_log_level, 'RESULTS')
|
||||
@@ -143,18 +144,19 @@ def LogResults(original_class):
|
||||
local_log = logging.getLogger(caller)
|
||||
|
||||
#check status of tests and record it
|
||||
|
||||
for (name, msg) in result.errors:
|
||||
if self._testMethodName == str(name).split(' ')[0]:
|
||||
if (self._testMethodName == str(name).split(' ')[0]) and (class_name in str(name).split(' ')[1]):
|
||||
local_log.results("Testcase "+str(test_case)+": ERROR")
|
||||
local_log.results("Testcase "+str(test_case)+":\n"+msg)
|
||||
passed = False
|
||||
for (name, msg) in result.failures:
|
||||
if self._testMethodName == str(name).split(' ')[0]:
|
||||
if (self._testMethodName == str(name).split(' ')[0]) and (class_name in str(name).split(' ')[1]):
|
||||
local_log.results("Testcase "+str(test_case)+": FAILED")
|
||||
local_log.results("Testcase "+str(test_case)+":\n"+msg)
|
||||
passed = False
|
||||
for (name, msg) in result.skipped:
|
||||
if self._testMethodName == str(name).split(' ')[0]:
|
||||
if (self._testMethodName == str(name).split(' ')[0]) and (class_name in str(name).split(' ')[1]):
|
||||
local_log.results("Testcase "+str(test_case)+": SKIPPED")
|
||||
passed = False
|
||||
if passed:
|
||||
|
||||
Reference in New Issue
Block a user