コード例 #1
0
def test_plan_ended(session):
    data = {}
    assert PlanEnded(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        plan=PlanData(
            session=session,
            id="112233",
            time=datetime.datetime(2020,
                                   9,
                                   13,
                                   12,
                                   26,
                                   40,
                                   tzinfo=datetime.timezone.utc),
            title="A plan",
            author_id="1234",
            guests={
                "1234": GuestStatus.GOING,
                "2345": GuestStatus.INVITED,
                "3456": GuestStatus.INVITED,
            },
        ),
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #2
0
def test_user_call_ended(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "Abc called you.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "skipSnippetUpdate": False,
            "tags": ["source:generic_admin_text", "no_push"],
            "threadKey": {
                "otherUserFbId": "1234"
            },
            "threadReadStateEffect": "KEEP_AS_IS",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "requestContext": {
            "apiArgs": {}
        },
        "type": "messenger_call_log",
        "untypedData": {
            "call_capture_attachments": "",
            "caller_id": "1234",
            "conference_name": "MESSENGER:1234567890",
            "rating": "0",
            "messenger_call_instance_id": "1234567890",
            "video": "",
            "event": "one_on_one_call_ended",
            "server_info": "",
            "call_duration": "3",
            "callee_id": "100002950119740",
        },
        "class": "AdminTextMessage",
    }
    assert CallEnded(
        author=User(session=session, id="1234"),
        thread=User(session=session, id="1234"),
        duration=datetime.timedelta(seconds=3),
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #3
0
def test_admins_removed(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "You removed yourself as a group admin.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": True,
            "tags": ["source:titan:web"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "KEEP_AS_IS",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "change_thread_admins",
        "untypedData": {
            "THREAD_CATEGORY": "GROUP",
            "TARGET_ID": "1234",
            "ADMIN_TYPE": "0",
            "ADMIN_EVENT": "remove_admin",
        },
        "class": "AdminTextMessage",
    }
    assert AdminsRemoved(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        removed=[User(session=session, id="1234")],
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #4
0
def test_color_set(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "You changed the chat theme to Orange.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": ["source:titan:web", "no_push"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "change_thread_theme",
        "untypedData": {
            "should_show_icon": "1",
            "theme_color": "FFFF7E29",
            "accessibility_label": "Orange",
        },
        "class": "AdminTextMessage",
    }
    assert ColorSet(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        color="#ff7e29",
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #5
0
def test_approvalmode_unset(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText":
            "You turned off member approval. Anyone with the link can join the group.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": True,
            "tags": ["source:titan:web", "no_push"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "KEEP_AS_IS",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "change_thread_approval_mode",
        "untypedData": {
            "APPROVAL_MODE": "0",
            "THREAD_CATEGORY": "GROUP"
        },
        "class": "AdminTextMessage",
    }
    assert ApprovalModeSet(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        require_admin_approval=False,
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #6
0
def test_nickname_set(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "You set the nickname for Abc Def to abc.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": ["source:titan:web", "no_push"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "change_thread_nickname",
        "untypedData": {
            "nickname": "abc",
            "participant_id": "2345"
        },
        "class": "AdminTextMessage",
    }
    assert NicknameSet(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        subject=User(session=session, id="2345"),
        nickname="abc",
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #7
0
def test_emoji_set(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "You set the emoji to 🌟.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "skipSnippetUpdate": False,
            "tags": ["source:generic_admin_text"],
            "threadKey": {
                "otherUserFbId": "1234"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "requestContext": {
            "apiArgs": {}
        },
        "type": "change_thread_icon",
        "untypedData": {
            "thread_icon_url":
            "https://www.facebook.com/images/emoji.php/v9/te0/1/16/1f31f.png",
            "thread_icon": "🌟",
        },
        "class": "AdminTextMessage",
    }
    assert EmojiSet(
        author=User(session=session, id="1234"),
        thread=User(session=session, id="1234"),
        emoji="🌟",
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #8
0
def test_call_joined(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "Abc joined the call.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": ["source:titan:web"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "participant_joined_group_call",
        "untypedData": {
            "server_info_data": "XYZ123ABC",
            "group_call_type": "0",
            "joining_user": "******",
        },
        "class": "AdminTextMessage",
    }
    assert CallJoined(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #9
0
def test_nickname_clear(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "You cleared your nickname.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "skipSnippetUpdate": False,
            "tags": ["source:generic_admin_text"],
            "threadKey": {
                "otherUserFbId": "1234"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "requestContext": {
            "apiArgs": {}
        },
        "type": "change_thread_nickname",
        "untypedData": {
            "nickname": "",
            "participant_id": "1234"
        },
        "class": "AdminTextMessage",
    }
    assert NicknameSet(
        author=User(session=session, id="1234"),
        thread=User(session=session, id="1234"),
        subject=User(session=session, id="1234"),
        nickname=None,
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #10
0
def test_plan_deleted(session):
    guest_list = [
        {
            "guest_list_state": "GOING",
            "node": {
                "id": "1234"
            }
        },
        {
            "guest_list_state": "INVITED",
            "node": {
                "id": "3456"
            }
        },
        {
            "guest_list_state": "INVITED",
            "node": {
                "id": "2345"
            }
        },
    ]
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText":
            "You deleted the plan A plan for Mon, 20 Jan at 15:30.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": ["source:titan:web", "no_push"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "lightweight_event_delete",
        "untypedData": {
            "event_end_time": "0",
            "event_timezone": "",
            "event_id": "112233",
            "event_type": "EVENT",
            "event_location_id": "2233445566",
            "latitude": "0",
            "event_title": "A plan",
            "event_time": "1600000000",
            "event_seconds_to_notify_before": "3600",
            "guest_state_list": _util.json_minimal(guest_list),
            "event_note": "",
            "longitude": "0",
        },
        "class": "AdminTextMessage",
    }
    assert PlanDeleted(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        plan=PlanData(
            session=session,
            id="112233",
            time=datetime.datetime(2020,
                                   9,
                                   13,
                                   12,
                                   26,
                                   40,
                                   tzinfo=datetime.timezone.utc),
            title="A plan",
            location_id="2233445566",
            author_id=None,
            guests={
                "1234": GuestStatus.GOING,
                "2345": GuestStatus.INVITED,
                "3456": GuestStatus.INVITED,
            },
        ),
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #11
0
def test_poll_answered(session):
    poll_data = {
        "id":
        "112233",
        "text":
        "A poll",
        "total_count":
        3,
        "viewer_has_voted":
        "true",
        "options": [
            {
                "id": "1002",
                "text": "Option B",
                "total_count": 2,
                "viewer_has_voted": "true",
                "voters": ["1234", "2345"],
            },
            {
                "id": "1003",
                "text": "Option C",
                "total_count": 1,
                "viewer_has_voted": "true",
                "voters": ["1234"],
            },
            {
                "id": "1001",
                "text": "Option A",
                "total_count": 0,
                "viewer_has_voted": "false",
                "voters": [],
            },
        ],
    }
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText":
            'You changed your vote to "Option B" and 1 other option in the poll: A poll.',
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": ["source:titan:web"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "group_poll",
        "untypedData": {
            "added_option_ids": "[1002,1003]",
            "removed_option_ids": "[1001]",
            "question_json": _util.json_minimal(poll_data),
            "event_type": "update_vote",
            "question_id": "112233",
        },
        "class": "AdminTextMessage",
    }
    assert PollVoted(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        poll=Poll(
            session=session,
            id="112233",
            question="A poll",
            options=[
                PollOption(
                    id="1002",
                    text="Option B",
                    vote=True,
                    voters=["1234", "2345"],
                    votes_count=2,
                ),
                PollOption(
                    id="1003",
                    text="Option C",
                    vote=True,
                    voters=["1234"],
                    votes_count=1,
                ),
                PollOption(id="1001",
                           text="Option A",
                           vote=False,
                           voters=[],
                           votes_count=0),
            ],
            options_count=3,
        ),
        added_ids=["1002", "1003"],
        removed_ids=["1001"],
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #12
0
def test_group_call_ended(session):
    data = {
        "irisSeqId": "1111111",
        "irisTags": ["DeltaAdminTextMessage", "is_from_iris_fanout"],
        "messageMetadata": {
            "actorFbId": "1234",
            "adminText": "The call ended.",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": ["source:titan:web", "no_push"],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "MARK_UNREAD",
            "timestamp": "1500000000000",
            "unsendType": "deny_log_message",
        },
        "participants": ["1234", "2345", "3456"],
        "requestContext": {
            "apiArgs": {}
        },
        "tqSeqId": "1111",
        "type": "messenger_call_log",
        "untypedData": {
            "call_capture_attachments": "",
            "caller_id": "1234",
            "conference_name": "MESSENGER:1234567890",
            "rating": "0",
            "messenger_call_instance_id": "1234567890",
            "video": "",
            "event": "group_call_ended",
            "server_info": "XYZ123ABC",
            "call_duration": "31",
            "callee_id": "0",
        },
        "class": "AdminTextMessage",
    }
    data2 = {
        "callState": "NO_ONGOING_CALL",
        "messageMetadata": {
            "actorFbId": "1234",
            "folderId": {
                "systemFolderId": "INBOX"
            },
            "messageId": "mid.$XYZ",
            "offlineThreadingId": "11223344556677889900",
            "skipBumpThread": False,
            "tags": [],
            "threadKey": {
                "threadFbId": "4321"
            },
            "threadReadStateEffect": "KEEP_AS_IS",
            "timestamp": "1500000000000",
        },
        "class": "RtcCallData",
    }
    assert CallEnded(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        duration=datetime.timedelta(seconds=31),
        at=datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
    ) == parse_admin_message(session, data)
コード例 #13
0
def test_parse_admin_message_unknown(session):
    data = {"class": "AdminTextMessage", "type": "abc"}
    assert UnknownEvent(source="Delta type",
                        data=data) == parse_admin_message(session, data)