Fix MessagesDelivered user parsing
This commit is contained in:
@@ -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)
|
||||
|
@@ -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",
|
||||
|
Reference in New Issue
Block a user