Skip to content

Commit

Permalink
tests: include more readable mqtt logs in Get Logs keyword
Browse files Browse the repository at this point in the history
Signed-off-by: Reuben Miller <[email protected]>
  • Loading branch information
reubenmiller committed Nov 3, 2023
1 parent 5dcb430 commit e5de3b1
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions tests/RobotFramework/libraries/ThinEdgeIO/ThinEdgeIO.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,12 @@ def get_logs(
except Exception as ex: # pylint: disable=broad-except
log.warning("Failed to get device managed object. %s", ex)

# Log mqtt messages separately so it is easier to read/debug
try:
self.log_mqtt_messages("#", date_from)
except Exception as ex:
log.warning("Failed to retrieve mqtt logs. %s", ex, exc_info=True)

try:
# Get agent log files (if they exist)
log.info("tedge agent logs: /var/log/tedge/agent/*")
Expand Down Expand Up @@ -512,6 +518,18 @@ def _assert_mqtt_topic_messages(

return messages

def log_mqtt_messages(self, topic: str = "#", date_from: Union[datetime, float] = None, **kwargs):
items = self.mqtt_match_messages(
topic=topic,
date_from=date_from,
**kwargs,
)
entries = [
f'{item["message"]["tst"].replace("+0000", ""):32} {item["message"]["topic"]:70} {bytes.fromhex(item["payload_hex"]).decode("utf8")}'
for item in items
]
log.info("---- mqtt messages ----\n%s", "\n".join(entries))

@keyword("Should Have MQTT Messages")
def mqtt_should_have_topic(
self,
Expand Down

0 comments on commit e5de3b1

Please sign in to comment.