def messages_equal(self, res1, res2):
"""Compare messages of two FTL resources.
Uses FTL.BaseNode.equals to compare all messages in two FTL resources.
If the order or number of messages differ, the result is also False.
"""
def message_id(message):
"Return the message's identifer name for sorting purposes."
return message.id.name
messages1 = sorted(
(entry for entry in res1.body if isinstance(entry, FTL.Message)),
key=message_id)
messages2 = sorted(
(entry for entry in res2.body if isinstance(entry, FTL.Message)),
key=message_id)
for msg1, msg2 in zip_longest(messages1, messages2):
if msg1 is None or msg2 is None:
return False
if not msg1.equals(msg2):
return False
return True
评论列表
文章目录