Added functionality for short test caption in CLI
Reasons: - Names of tests shown in CLI output are too long to fit the window frame size sometimes Changes: - Added functionality that extracts short test description from report if test succeded or just its class name and test name otherwise and returns as a test name for CLI Implements blueprint: test-caption Change-Id: Id0d7124e24d364f8be0e522002296a367b595156
This commit is contained in:
parent
ca2fe0c554
commit
5604c8aad4
|
@ -17,7 +17,7 @@ from oslo_utils import importutils
|
||||||
|
|
||||||
class Test(object):
|
class Test(object):
|
||||||
"""
|
"""
|
||||||
This class represents seginificant information about test case
|
This class represents siginificant information about test case
|
||||||
such as:
|
such as:
|
||||||
test
|
test
|
||||||
its execution report
|
its execution report
|
||||||
|
@ -41,6 +41,9 @@ class Test(object):
|
||||||
@type test_class: basestring
|
@type test_class: basestring
|
||||||
"""
|
"""
|
||||||
self._test_class = test_class
|
self._test_class = test_class
|
||||||
|
|
||||||
|
self._test_caption = test_class
|
||||||
|
|
||||||
self._duration = None
|
self._duration = None
|
||||||
self._report = None
|
self._report = None
|
||||||
self._result = None
|
self._result = None
|
||||||
|
@ -60,7 +63,7 @@ class Test(object):
|
||||||
:rtype: dict
|
:rtype: dict
|
||||||
"""
|
"""
|
||||||
return {
|
return {
|
||||||
'test': self._test_class,
|
'test': self._test_caption,
|
||||||
'report': self.report,
|
'report': self.report,
|
||||||
'result': self.result,
|
'result': self.result,
|
||||||
'duration': self.duration,
|
'duration': self.duration,
|
||||||
|
@ -82,7 +85,11 @@ class Test(object):
|
||||||
"""
|
"""
|
||||||
Returns nose test name
|
Returns nose test name
|
||||||
"""
|
"""
|
||||||
return self._test_class
|
return self._test_caption
|
||||||
|
|
||||||
|
@name.setter
|
||||||
|
def name(self, name):
|
||||||
|
self._test_caption = name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def report(self):
|
def report(self):
|
||||||
|
|
|
@ -89,6 +89,14 @@ class FuelHealthPlugin(base.ValidationPlugin):
|
||||||
if line.startswith("Ran"):
|
if line.startswith("Ran"):
|
||||||
return line.split(" ")[-1]
|
return line.split(" ")[-1]
|
||||||
|
|
||||||
|
def _get_test_name_from_report(self, report):
|
||||||
|
if len(report) and not report[0].startswith('ERROR'):
|
||||||
|
return report[0]
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def _get_test_name_from_class(self, cls_name):
|
||||||
|
return cls_name.split(':')[1]
|
||||||
|
|
||||||
def _execute_and_report(self, test_suite_paths):
|
def _execute_and_report(self, test_suite_paths):
|
||||||
"""
|
"""
|
||||||
Executes and assembles report right after each test execution
|
Executes and assembles report right after each test execution
|
||||||
|
@ -106,6 +114,16 @@ class FuelHealthPlugin(base.ValidationPlugin):
|
||||||
|
|
||||||
test_descr = object_descriptors.Test(test)
|
test_descr = object_descriptors.Test(test)
|
||||||
test_descr.report = "".join(suites_report.buflist)
|
test_descr.report = "".join(suites_report.buflist)
|
||||||
|
|
||||||
|
# @TODO(okyrylchuk): there's no way to extract test
|
||||||
|
# description from report when test fails, so it should
|
||||||
|
# be implemented in a rather different way
|
||||||
|
|
||||||
|
_name = self._get_test_name_from_report(suites_report.buflist)
|
||||||
|
_name = _name or self._get_test_name_from_class(test_descr.name)
|
||||||
|
|
||||||
|
test_descr.name = _name
|
||||||
|
|
||||||
test_descr.duration = self._get_duration_from_report(
|
test_descr.duration = self._get_duration_from_report(
|
||||||
suites_report.buflist)
|
suites_report.buflist)
|
||||||
test_descr.result = "Passed" if result else "Failed"
|
test_descr.result = "Passed" if result else "Failed"
|
||||||
|
|
Loading…
Reference in New Issue