Skip to content

Commit 0b51afc

Browse files
committed
feat(debugger): update delayed logging handling for Robot Framework 7.3 compatibility
closes #457
1 parent 3a29cbf commit 0b51afc

File tree

1 file changed

+34
-23
lines changed

1 file changed

+34
-23
lines changed

packages/debugger/src/robotcode/debugger/debugger.py

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1781,29 +1781,40 @@ def run_kw() -> Any:
17811781
result = None
17821782

17831783
if len(test.body):
1784-
for kw in test.body:
1785-
with LOGGER.delayed_logging:
1786-
try:
1787-
result = self._run_keyword(kw, evaluate_context)
1788-
except (SystemExit, KeyboardInterrupt):
1789-
raise
1790-
except BaseException as e:
1791-
result = e
1792-
break
1793-
finally:
1794-
if get_robot_version() <= (7, 2):
1795-
messages = LOGGER._log_message_cache or []
1796-
for msg in messages or ():
1797-
# hack to get and evaluate log level
1798-
listener: Any = next(iter(LOGGER), None)
1799-
if listener is None or self.check_message_is_logged(listener, msg):
1800-
self.log_message(
1801-
{
1802-
"level": msg.level,
1803-
"message": msg.message,
1804-
"timestamp": msg.timestamp,
1805-
}
1806-
)
1784+
if get_robot_version() >= (7, 3):
1785+
for kw in test.body:
1786+
with evaluate_context.output.delayed_logging:
1787+
try:
1788+
result = self._run_keyword(kw, evaluate_context)
1789+
except (SystemExit, KeyboardInterrupt):
1790+
raise
1791+
except BaseException as e:
1792+
result = e
1793+
break
1794+
else:
1795+
for kw in test.body:
1796+
with LOGGER.delayed_logging:
1797+
try:
1798+
result = self._run_keyword(kw, evaluate_context)
1799+
except (SystemExit, KeyboardInterrupt):
1800+
raise
1801+
except BaseException as e:
1802+
result = e
1803+
break
1804+
finally:
1805+
if get_robot_version() <= (7, 2):
1806+
messages = LOGGER._log_message_cache or []
1807+
for msg in messages or ():
1808+
# hack to get and evaluate log level
1809+
listener: Any = next(iter(LOGGER), None)
1810+
if listener is None or self.check_message_is_logged(listener, msg):
1811+
self.log_message(
1812+
{
1813+
"level": msg.level,
1814+
"message": msg.message,
1815+
"timestamp": msg.timestamp,
1816+
}
1817+
)
18071818
return result
18081819

18091820
result = self.run_in_robot_thread(run_kw)

0 commit comments

Comments
 (0)