aboutsummaryrefslogtreecommitdiffstats
path: root/src/onaptests/steps
diff options
context:
space:
mode:
authorLukasz Rajewski <lukasz.rajewski@t-mobile.pl>2024-03-01 00:05:45 +0100
committerLukasz Rajewski <lukasz.rajewski@t-mobile.pl>2024-03-03 15:23:25 +0100
commit7ccb34ecddc674ad23ed1f0e607fd12b6d5954b9 (patch)
treeb2be46a4bc3b216de9aaad0844a869df064b3698 /src/onaptests/steps
parentf81e846d07ae7676494d90756411fe898afd92fb (diff)
Error reason added to the test reports
Error reason added to the test reports Issue-ID: TEST-402 Signed-off-by: Lukasz Rajewski <lukasz.rajewski@t-mobile.pl> Change-Id: I024626764b134d9fe7607988cf46918414f1deb3
Diffstat (limited to 'src/onaptests/steps')
-rw-r--r--src/onaptests/steps/base.py29
-rw-r--r--src/onaptests/steps/reports_collection.py4
2 files changed, 22 insertions, 11 deletions
diff --git a/src/onaptests/steps/base.py b/src/onaptests/steps/base.py
index 00229ba..c615047 100644
--- a/src/onaptests/steps/base.py
+++ b/src/onaptests/steps/base.py
@@ -40,6 +40,7 @@ class StoreStateHandler(ABC):
else:
self._state_execute = True
initial_exception = None
+ error_reason = []
try:
execution_status: Optional[ReportStepStatus] = ReportStepStatus.FAIL
if cleanup:
@@ -81,11 +82,16 @@ class StoreStateHandler(ABC):
if initial_exception:
substep_exc = OnapTestExceptionGroup("Cleanup Exceptions",
[initial_exception, substep_exc])
+ error_reason = substep_exc.root_cause
raise substep_exc
except (OnapTestException, SDKException) as test_exc:
if initial_exception:
test_exc = OnapTestExceptionGroup("Cleanup Exceptions",
[initial_exception, test_exc])
+ if isinstance(test_exc, OnapTestException):
+ error_reason = test_exc.root_cause
+ else:
+ error_reason = [str(test_exc)]
raise test_exc
finally:
if not cleanup:
@@ -95,7 +101,8 @@ class StoreStateHandler(ABC):
step_description=self._step_title(cleanup),
step_execution_status=execution_status,
step_execution_duration=time.time() - self._start_cleanup_time,
- step_component=self.component
+ step_component=self.component,
+ step_error_reason=error_reason
)
else:
if not self._start_execution_time:
@@ -110,7 +117,8 @@ class StoreStateHandler(ABC):
step_execution_status=(execution_status if execution_status else
ReportStepStatus.FAIL),
step_execution_duration=time.time() - self._start_execution_time,
- step_component=self.component
+ step_component=self.component,
+ step_error_reason=error_reason
)
wrapper._is_wrapped = True
return wrapper
@@ -349,18 +357,19 @@ class BaseStep(StoreStateHandler, ABC):
Override this method and remember to call `super().execute()` before.
"""
- substep_error = False
+ substep_exceptions = []
for step in self._steps:
try:
step.execute()
except (OnapTestException, SDKException) as substep_err:
- substep_error = True
if step._break_on_error:
- raise SubstepExecutionException from substep_err
- self._logger.exception(substep_err)
+ raise SubstepExecutionException("", substep_err) # noqa: W0707
+ substep_exceptions.append(substep_err)
if self._steps:
- if substep_error and self._break_on_error:
- raise SubstepExecutionException("Cannot continue due to failed substeps")
+ if len(substep_exceptions) > 0 and self._break_on_error:
+ if len(substep_exceptions) == 1:
+ raise SubstepExecutionException("", substep_exceptions[0])
+ raise SubstepExecutionExceptionGroup("", substep_exceptions)
self._log_execution_state("CONTINUE")
self._substeps_executed = True
self._start_execution_time = time.time()
@@ -381,13 +390,13 @@ class BaseStep(StoreStateHandler, ABC):
step._default_cleanup_handler()
except (OnapTestException, SDKException) as substep_err:
try:
- raise SubstepExecutionException from substep_err
+ raise SubstepExecutionException("", substep_err) # noqa: W0707
except Exception as e:
exceptions_to_raise.append(e)
if len(exceptions_to_raise) > 0:
if len(exceptions_to_raise) == 1:
raise exceptions_to_raise[0]
- raise SubstepExecutionExceptionGroup("Substep Exceptions", exceptions_to_raise)
+ raise SubstepExecutionExceptionGroup("", exceptions_to_raise)
def execute(self) -> None:
"""Step's execute.
diff --git a/src/onaptests/steps/reports_collection.py b/src/onaptests/steps/reports_collection.py
index 2f92660..4f0965f 100644
--- a/src/onaptests/steps/reports_collection.py
+++ b/src/onaptests/steps/reports_collection.py
@@ -25,6 +25,7 @@ class Report:
step_execution_status: ReportStepStatus
step_execution_duration: float
step_component: str
+ step_error_reason: List[str]
class ReportsCollection:
@@ -103,7 +104,8 @@ class ReportsCollection:
'description': step_report.step_description,
'status': step_report.step_execution_status.value,
'duration': step_report.step_execution_duration,
- 'component': step_report.step_component
+ 'component': step_report.step_component,
+ 'reason': step_report.step_error_reason
}
for step_report in reversed(self.report)
]