def test_user_status_unblocked(session): data = { "threadKey": { "otherUserFbId": 1234 }, "canViewerReply": True, "reason": 2, "actorFbid": 1234, } assert UserStatusEvent( author=User(session=session, id="1234"), thread=User(session=session, id="1234"), blocked=False, ) == parse_client_delta(session, {"deltaChangeViewerStatus": data})
def test_reaction_event_removed(session): data = { "threadKey": { "threadFbId": 1234 }, "messageId": "mid.$XYZ", "action": 1, "userId": 4321, "senderId": 4321, "offlineThreadingId": "6623586106713014836", } thread = Group(session=session, id="1234") assert ReactionEvent( author=User(session=session, id="4321"), thread=thread, message=Message(thread=thread, id="mid.$XYZ"), reaction=None, ) == parse_client_delta(session, {"deltaMessageReaction": data})
def test_reaction_event_added(session): data = { "threadKey": { "otherUserFbId": 1234 }, "messageId": "mid.$XYZ", "action": 0, "userId": 4321, "reaction": "😍", "senderId": 4321, "offlineThreadingId": "6623596674408921967", } thread = User(session=session, id="1234") assert ReactionEvent( author=User(session=session, id="4321"), thread=thread, message=Message(thread=thread, id="mid.$XYZ"), reaction="😍", ) == parse_client_delta(session, {"deltaMessageReaction": data})
def test_message_reply(session): message = { "messageMetadata": { "threadKey": { "otherUserFbId": 1234 }, "messageId": "mid.$XYZ", "offlineThreadingId": "112233445566", "actorFbId": 1234, "timestamp": 1500000000000, "tags": ["source:messenger:web", "cg-enabled", "sent", "inbox"], "threadReadStateEffect": 3, "skipBumpThread": False, "skipSnippetUpdate": False, "unsendType": "can_unsend", "folderId": { "systemFolderId": 0 }, }, "body": "xyz", "attachments": [], "irisSeqId": 1111111, "messageReply": { "replyToMessageId": { "id": "mid.$ABC" }, "status": 0, }, "requestContext": { "apiArgs": "..." }, "irisTags": ["DeltaNewMessage"], } reply = { "messageMetadata": { "threadKey": { "otherUserFbId": 1234 }, "messageId": "mid.$ABC", "offlineThreadingId": "665544332211", "actorFbId": 4321, "timestamp": 1600000000000, "tags": ["inbox", "sent", "source:messenger:web"], }, "body": "abc", "attachments": [], "requestContext": { "apiArgs": "..." }, "irisTags": [], } data = { "message": message, "repliedToMessage": reply, "status": 0, } thread = User(session=session, id="1234") assert MessageReplyEvent( author=User(session=session, id="1234"), thread=thread, message=MessageData( thread=thread, id="mid.$XYZ", author="1234", created_at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc), text="xyz", reply_to_id="mid.$ABC", ), replied_to=MessageData( thread=thread, id="mid.$ABC", author="4321", created_at=datetime.datetime(2020, 9, 13, 12, 26, 40, tzinfo=datetime.timezone.utc), text="abc", ), ) == parse_client_delta(session, {"deltaMessageReply": data})
def test_parse_client_delta_unknown(session): assert UnknownEvent(source="client payload", data={"abc": 10}) == parse_client_delta(session, {"abc": 10})