Add store_result common attribute to test items
Allows any test item to store its result (or PASS/FAIL status when result is None) into a named global variable, available to subsequent items via $(variable_name). store_result runs after expected_result but before no_fail so the real outcome is always captured. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -101,6 +101,7 @@ class TestItem:
|
||||
self.status_queue = status_queue
|
||||
self._execute_on_stop = False
|
||||
self._post_eval = None
|
||||
self._store_result = None
|
||||
self._expected_result = None
|
||||
self._no_fail = None
|
||||
self._is_stopped = False
|
||||
@@ -155,6 +156,9 @@ class TestItem:
|
||||
if "process_result" in dict_item:
|
||||
self._post_eval = dict_item["process_result"]
|
||||
|
||||
if "store_result" in dict_item:
|
||||
self._store_result = dict_item["store_result"]
|
||||
|
||||
if "expected_result" in dict_item:
|
||||
self._expected_result = dict_item["expected_result"]
|
||||
|
||||
@@ -277,6 +281,9 @@ class TestItem:
|
||||
self.process_result()
|
||||
# expected_result treatment
|
||||
self.result_expected()
|
||||
# Store result in a global variable if requested (before no_fail so
|
||||
# the real outcome is captured when result.value is None)
|
||||
self.store_result()
|
||||
# Case of the no_fail true parameter
|
||||
self.process_no_fail()
|
||||
|
||||
@@ -319,6 +326,17 @@ class TestItem:
|
||||
print(e)
|
||||
self.result.set(TestValue.FAILURE, "Result processing failed")
|
||||
|
||||
def store_result(self):
|
||||
if self._store_result is None:
|
||||
return
|
||||
var_name = self._prms.expanse(self._store_result)
|
||||
if self.result.value is None:
|
||||
value = str(self.result.test_result)
|
||||
else:
|
||||
value = self.result.value
|
||||
tm.setgd(var_name, value)
|
||||
print(f"Stored result in '$({var_name})': {value}")
|
||||
|
||||
def process_report(self, report_eval):
|
||||
tm.print_debug(f"Export reported values:")
|
||||
rep_eval = self._prms.expanse(report_eval)
|
||||
|
||||
Reference in New Issue
Block a user