Fix MessagesDelivered user parsing
This commit is contained in:
@@ -99,8 +99,11 @@ class MessagesDelivered(ThreadEvent):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _parse(cls, session, data):
|
def _parse(cls, session, data):
|
||||||
author = _user.User(session=session, id=data["actorFbId"])
|
|
||||||
thread = cls._get_thread(session, data)
|
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"]]
|
messages = [_message.Message(thread=thread, id=x) for x in data["messageIds"]]
|
||||||
at = _util.millis_to_datetime(int(data["deliveredWatermarkTimestampMs"]))
|
at = _util.millis_to_datetime(int(data["deliveredWatermarkTimestampMs"]))
|
||||||
return cls(author=author, thread=thread, messages=messages, at=at)
|
return cls(author=author, thread=thread, messages=messages, at=at)
|
||||||
|
@@ -133,7 +133,7 @@ def test_forced_fetch(session):
|
|||||||
) == parse_delta(session, data)
|
) == parse_delta(session, data)
|
||||||
|
|
||||||
|
|
||||||
def test_delivery_receipt(session):
|
def test_delivery_receipt_group(session):
|
||||||
data = {
|
data = {
|
||||||
"actorFbId": "1234",
|
"actorFbId": "1234",
|
||||||
"deliveredWatermarkTimestampMs": "1500000000000",
|
"deliveredWatermarkTimestampMs": "1500000000000",
|
||||||
@@ -156,6 +156,28 @@ def test_delivery_receipt(session):
|
|||||||
) == parse_delta(session, data)
|
) == 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):
|
def test_read_receipt(session):
|
||||||
data = {
|
data = {
|
||||||
"actionTimestampMs": "1600000000000",
|
"actionTimestampMs": "1600000000000",
|
||||||
|
Reference in New Issue
Block a user