Ejemplo n.º 1
0
def test_orca_presence_inc(session):
    data = {
        "list_type":
        "inc",
        "list": [
            {
                "u": 1234,
                "p": 0,
                "l": 1500000000,
                "vc": 74
            },
            {
                "u": 2345,
                "p": 2,
                "c": 9969664,
                "vc": 10
            },
        ],
    }
    (event, ) = parse_events(session, "/orca_presence", data)
    la = datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc)
    assert event == Presence(
        statuses={
            "1234": ActiveStatus(active=False, last_active=la),
            "2345": ActiveStatus(active=True),
        },
        full=False,
    )
Ejemplo n.º 2
0
def test_orca_typing_notifications(session):
    data = {"type": "typ", "sender_fbid": 1234, "state": 1}
    (event, ) = parse_events(session, "/orca_typing_notifications", data)
    assert event == Typing(
        author=User(session=session, id="1234"),
        thread=User(session=session, id="1234"),
        status=True,
    )
Ejemplo n.º 3
0
def test_thread_typing(session):
    data = {"sender_fbid": 1234, "state": 0, "type": "typ", "thread": "4321"}
    (event, ) = parse_events(session, "/thread_typing", data)
    assert event == Typing(
        author=User(session=session, id="1234"),
        thread=Group(session=session, id="4321"),
        status=False,
    )
Ejemplo n.º 4
0
def test_t_ms_full(session):
    """A full example of parsing of data in /t_ms."""
    payload = {
        "deltas": [{
            "deltaMessageReaction": {
                "threadKey": {
                    "threadFbId": 4321
                },
                "messageId": "mid.$XYZ",
                "action": 0,
                "userId": 1234,
                "reaction": "😢",
                "senderId": 1234,
                "offlineThreadingId": "1122334455",
            }
        }]
    }
    data = {
        "deltas": [
            {
                "payload": [ord(x) for x in _util.json_minimal(payload)],
                "class": "ClientPayload",
            },
            {
                "class": "NoOp",
            },
            {
                "forceInsert": False,
                "messageId": "mid.$ABC",
                "threadKey": {
                    "threadFbId": "4321"
                },
                "class": "ForcedFetch",
            },
        ],
        "firstDeltaSeqId":
        111111,
        "lastIssuedSeqId":
        111113,
        "queueEntityId":
        1234,
    }
    thread = Group(session=session, id="4321")
    assert [
        ReactionEvent(
            author=User(session=session, id="1234"),
            thread=thread,
            message=Message(thread=thread, id="mid.$XYZ"),
            reaction="😢",
        ),
        UnfetchedThreadEvent(
            thread=thread,
            message=Message(thread=thread, id="mid.$ABC"),
        ),
    ] == list(parse_events(session, "/t_ms", data))
Ejemplo n.º 5
0
def test_orca_presence_full(session):
    data = {
        "list_type":
        "full",
        "list": [
            {
                "u": 1234,
                "p": 2,
                "c": 5767242
            },
            {
                "u": 2345,
                "p": 2,
                "l": 1500000000
            },
            {
                "u": 3456,
                "p": 2,
                "c": 9961482
            },
            {
                "u": 4567,
                "p": 0,
                "l": 1500000000
            },
            {
                "u": 5678,
                "p": 0
            },
            {
                "u": 6789,
                "p": 2,
                "c": 14168154
            },
        ],
    }
    (event, ) = parse_events(session, "/orca_presence", data)
    la = datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc)
    assert event == Presence(
        statuses={
            "1234": ActiveStatus(active=True),
            "2345": ActiveStatus(active=True, last_active=la),
            "3456": ActiveStatus(active=True),
            "4567": ActiveStatus(active=False, last_active=la),
            "5678": ActiveStatus(active=False),
            "6789": ActiveStatus(active=True),
        },
        full=True,
    )
Ejemplo n.º 6
0
def test_friend_request(session):
    data = {"type": "jewel_requests_add", "from": "1234"}
    (event, ) = parse_events(session, "/legacy_web", data)
    assert event == FriendRequest(author=User(session=session, id="1234"))