79 lines
2.6 KiB
Python
79 lines
2.6 KiB
Python
import pytest
|
|
import datetime
|
|
from fbchat import Group, User, ParseError, ThreadEvent
|
|
|
|
|
|
def test_thread_event_get_thread_group1(session):
|
|
data = {
|
|
"threadKey": {"threadFbId": 1234},
|
|
"messageId": "mid.$gAAT4Sw1WSGh14A3MOFvrsiDvr3Yc",
|
|
"offlineThreadingId": "6623583531508397596",
|
|
"actorFbId": 4321,
|
|
"timestamp": 1500000000000,
|
|
"tags": [
|
|
"inbox",
|
|
"sent",
|
|
"tq",
|
|
"blindly_apply_message_folder",
|
|
"source:messenger:web",
|
|
],
|
|
}
|
|
assert Group(session=session, id="1234") == ThreadEvent._get_thread(session, data)
|
|
|
|
|
|
def test_thread_event_get_thread_group2(session):
|
|
data = {
|
|
"actorFbId": "4321",
|
|
"folderId": {"systemFolderId": "INBOX"},
|
|
"messageId": "mid.$XYZ",
|
|
"offlineThreadingId": "112233445566",
|
|
"skipBumpThread": False,
|
|
"tags": ["source:messenger:web"],
|
|
"threadKey": {"threadFbId": "1234"},
|
|
"threadReadStateEffect": "KEEP_AS_IS",
|
|
"timestamp": "1500000000000",
|
|
}
|
|
assert Group(session=session, id="1234") == ThreadEvent._get_thread(session, data)
|
|
|
|
|
|
def test_thread_event_get_thread_user(session):
|
|
data = {
|
|
"actorFbId": "4321",
|
|
"folderId": {"systemFolderId": "INBOX"},
|
|
"messageId": "mid.$XYZ",
|
|
"offlineThreadingId": "112233445566",
|
|
"skipBumpThread": False,
|
|
"skipSnippetUpdate": False,
|
|
"tags": ["source:messenger:web"],
|
|
"threadKey": {"otherUserFbId": "1234"},
|
|
"threadReadStateEffect": "KEEP_AS_IS",
|
|
"timestamp": "1500000000000",
|
|
}
|
|
assert User(session=session, id="1234") == ThreadEvent._get_thread(session, data)
|
|
|
|
|
|
def test_thread_event_get_thread_unknown(session):
|
|
data = {"threadKey": {"abc": "1234"}}
|
|
with pytest.raises(ParseError, match="Could not find thread data"):
|
|
ThreadEvent._get_thread(session, data)
|
|
|
|
|
|
def test_thread_event_parse_metadata(session):
|
|
data = {
|
|
"actorFbId": "4321",
|
|
"folderId": {"systemFolderId": "INBOX"},
|
|
"messageId": "mid.$XYZ",
|
|
"offlineThreadingId": "112233445566",
|
|
"skipBumpThread": False,
|
|
"skipSnippetUpdate": False,
|
|
"tags": ["source:messenger:web"],
|
|
"threadKey": {"otherUserFbId": "1234"},
|
|
"threadReadStateEffect": "KEEP_AS_IS",
|
|
"timestamp": "1500000000000",
|
|
}
|
|
assert (
|
|
User(session=session, id="4321"),
|
|
User(session=session, id="1234"),
|
|
datetime.datetime(2017, 7, 14, 2, 40, tzinfo=datetime.timezone.utc),
|
|
) == ThreadEvent._parse_metadata(session, {"messageMetadata": data})
|