Skip to content

Commit ac6dfe8

Browse files
committed
Update log skip logic
1 parent 8955961 commit ac6dfe8

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

robotframework_reportportal/listener.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,10 @@
4242
DEFAULT_BINARY_FILE_TYPE = "application/octet-stream"
4343
TRUNCATION_SIGN = "...'"
4444
REMOVED_KEYWORD_CONTENT_LOG = "Content removed using the --remove-keywords option."
45-
REMOVED_WKUS_KEYWORD_LOG = "{number} failing items removed using the --remove-keywords option."
45+
REMOVED_WUKS_KEYWORD_LOG = "{number} failing items removed using the --remove-keywords option."
4646
REMOVED_FOR_WHILE_KEYWORD_LOG = "{number} passing items removed using the --remove-keywords option."
47-
WKUS_KEYWORD_NAME = "BuiltIn.Wait Until Keyword Succeeds"
47+
WUKS_KEYWORD_NAME = "BuiltIn.Wait Until Keyword Succeeds"
48+
RKIE_KEYWORD_NAME = "BuiltIn.Run Keyword And Ignore Error"
4849
FOR_KEYWORD_TYPE = "FOR"
4950
WHILE_KEYWORD_TYPE = "WHILE"
5051

@@ -116,7 +117,7 @@ def __init__(self, status: str) -> None:
116117
super().__init__(status, lambda kw: kw.status)
117118

118119

119-
WKUS_KEYWORD_MATCH = _KeywordNameMatch(WKUS_KEYWORD_NAME)
120+
WUKS_KEYWORD_MATCH = _KeywordNameMatch(WUKS_KEYWORD_NAME)
120121
FOR_KEYWORD_MATCH = _KeywordTypeEqual(FOR_KEYWORD_TYPE)
121122
WHILE_KEYWORD_NAME = _KeywordTypeEqual(WHILE_KEYWORD_TYPE)
122123

@@ -265,17 +266,20 @@ def _log_message(self, message: LogMessage) -> None:
265266
self.__post_log_message(message)
266267
return
267268

268-
if (
269-
not getattr(current_item, "posted", True) or getattr(current_item, "remove_data", False)
270-
) and message.level not in ["ERROR", "WARN"]:
271-
self.current_item.skipped_logs.append(message)
272-
elif (
273-
getattr(current_item, "matched_filter", None) is not WKUS_KEYWORD_MATCH
274-
and not self._remove_all_keyword_content
275-
):
276-
# Post everything skipped by '--removekeywords' option
277-
self._post_skipped_keywords(current_item)
269+
if not getattr(current_item, "remove_data", False) and getattr(current_item, "posted", True):
278270
self.__post_log_message(message)
271+
else:
272+
if message.level not in {"ERROR", "WARN"}:
273+
self.current_item.skipped_logs.append(message)
274+
else:
275+
matched_filter = getattr(current_item, "matched_filter", None)
276+
wuks_or_rkie = matched_filter is WUKS_KEYWORD_MATCH
277+
if not wuks_or_rkie and not self._remove_all_keyword_content:
278+
# Post everything skipped by '--removekeywords' option
279+
self._post_skipped_keywords(current_item)
280+
self.__post_log_message(message)
281+
else:
282+
self.current_item.skipped_logs.append(message)
279283

280284
@check_rp_enabled
281285
def log_message(self, message: Dict) -> None:
@@ -345,7 +349,7 @@ def _process_keyword_skip(self):
345349
break
346350
if pattern_str_upper in {"FOR", "WHILE", "WUKS"}:
347351
if pattern_str_upper == "WUKS":
348-
self._keyword_filters.append(WKUS_KEYWORD_MATCH)
352+
self._keyword_filters.append(WUKS_KEYWORD_MATCH)
349353
elif pattern_str_upper == "FOR":
350354
self._keyword_filters.append(FOR_KEYWORD_MATCH)
351355
else:
@@ -532,14 +536,14 @@ def end_keyword(self, _: Optional[str], attributes: Dict, ts: Optional[Any] = No
532536
"""
533537
kwd = self.current_item.update(attributes)
534538

535-
if kwd.matched_filter is WKUS_KEYWORD_MATCH and kwd.skip_origin is kwd:
539+
if kwd.matched_filter is WUKS_KEYWORD_MATCH and kwd.skip_origin is kwd:
536540
skipped_kwds = kwd.skipped_keywords
537541
skipped_kwds_num = len(skipped_kwds)
538542
if skipped_kwds_num > 2:
539543
if kwd.status == "FAIL":
540-
message = REMOVED_WKUS_KEYWORD_LOG.format(number=len(kwd.skipped_keywords) - 1)
544+
message = REMOVED_WUKS_KEYWORD_LOG.format(number=len(kwd.skipped_keywords) - 1)
541545
else:
542-
message = REMOVED_WKUS_KEYWORD_LOG.format(number=len(kwd.skipped_keywords) - 2)
546+
message = REMOVED_WUKS_KEYWORD_LOG.format(number=len(kwd.skipped_keywords) - 2)
543547
self._log_data_removed(kwd.rp_item_id, kwd.start_time, message)
544548
if skipped_kwds_num > 1 and kwd.status != "FAIL":
545549
first_iteration = kwd.skipped_keywords[0]

0 commit comments

Comments
 (0)