Fix MessagesDelivered user parsing

This commit is contained in:
Mads Marquart
2020-01-21 19:50:33 +01:00
parent 9b75db898a
commit 74a98d7eb3
2 changed files with 27 additions and 2 deletions

View File

@@ -99,8 +99,11 @@ class MessagesDelivered(ThreadEvent):
@classmethod
def _parse(cls, session, data):
author = _user.User(session=session, id=data["actorFbId"])
thread = cls._get_thread(session, data)
if "actorFbId" in data:
author = _user.User(session=session, id=data["actorFbId"])
else:
author = thread
messages = [_message.Message(thread=thread, id=x) for x in data["messageIds"]]
at = _util.millis_to_datetime(int(data["deliveredWatermarkTimestampMs"]))
return cls(author=author, thread=thread, messages=messages, at=at)

View File

@@ -133,7 +133,7 @@ def test_forced_fetch(session):
) == parse_delta(session, data)
def test_delivery_receipt(session):
def test_delivery_receipt_group(session):
data = {
"actorFbId": "1234",
"deliveredWatermarkTimestampMs": "1500000000000",
@@ -156,6 +156,28 @@ def test_delivery_receipt(session):
) == parse_delta(session, data)
def test_delivery_receipt_user(session):
data = {
"deliveredWatermarkTimestampMs": "1500000000000",
"irisSeqId": "1111111",
"irisTags": ["DeltaDeliveryReceipt", "is_from_iris_fanout"],
"messageIds": ["mid.$XYZ", "mid.$ABC"],
"requestContext": {"apiArgs": {}},
"threadKey": {"otherUserFbId": "1234"},
"class": "DeliveryReceipt",
}
thread = User(session=session, id="1234")
assert MessagesDelivered(
author=thread,
thread=thread,
messages=[
Message(thread=thread, id="mid.$XYZ"),
Message(thread=thread, id="mid.$ABC"),
],
at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
) == parse_delta(session, data)
def test_read_receipt(session):
data = {
"actionTimestampMs": "1600000000000",