fix watcher failure detection for host reporter json
Handle dict-shaped reporter events when deriving watcher host failures. - parse reporter JSON events with type/message/severity fields - preserve existing support for list-shaped event records - record the false-PASS failure mode in ATVM automation run learnings
This commit is contained in:
@@ -524,11 +524,16 @@ def extract_failure_from_reporter_events(testcase_name: str, testcase_events: ob
|
||||
if not isinstance(testcase_events, list):
|
||||
return None
|
||||
for event in testcase_events:
|
||||
if not isinstance(event, list) or len(event) < 3:
|
||||
if isinstance(event, dict):
|
||||
event_type = str(event.get("type", "")).lower()
|
||||
message_value = str(event.get("message", ""))
|
||||
status_value = str(event.get("severity", "")).lower()
|
||||
elif isinstance(event, list) and len(event) >= 3:
|
||||
event_type = str(event[0]).lower()
|
||||
message_value = str(event[1]) if len(event) > 1 else ""
|
||||
status_value = str(event[2]).lower()
|
||||
else:
|
||||
continue
|
||||
event_type = str(event[0]).lower()
|
||||
message_value = str(event[1]) if len(event) > 1 else ""
|
||||
status_value = str(event[2]).lower()
|
||||
if event_type in {"cy:command", "cy:task"} and status_value in {"failed", "fail", "error"}:
|
||||
return compact_failure_detail(f"{concise_testcase_name(testcase_name)} - {message_value}")
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user