diff --git a/fbchat/_client.py b/fbchat/_client.py index 3b9db45..c3a67a7 100644 --- a/fbchat/_client.py +++ b/fbchat/_client.py @@ -558,7 +558,7 @@ class Client: "shouldSendReadReceipt": "true", } - for threads in threads: + for thread in threads: data["ids[{}]".format(thread.id)] = "true" if read else "false" j = self.session._payload_post("/ajax/mercury/change_read_status.php", data) diff --git a/tests/online/conftest.py b/tests/online/conftest.py index ddf1663..33cea7b 100644 --- a/tests/online/conftest.py +++ b/tests/online/conftest.py @@ -17,12 +17,33 @@ def session(pytestconfig): pytestconfig.cache.set("session_cookies", session.get_cookies()) + # TODO: Allow the main session object to be closed - and perhaps used in `with`? + session._session.close() + @pytest.fixture def client(session): return fbchat.Client(session=session) +@pytest.fixture(scope="session") +def user(pytestconfig, session): + user_id = pytestconfig.cache.get("user_id", None) + if not user_id: + user_id = input("A user you're chatting with's id: ") + pytestconfig.cache.set("user_id", user_id) + return fbchat.User(session=session, id=user_id) + + +@pytest.fixture(scope="session") +def group(pytestconfig, session): + group_id = pytestconfig.cache.get("group_id", None) + if not group_id: + group_id = input("A group you're chatting with's id: ") + pytestconfig.cache.set("group_id", group_id) + return fbchat.Group(session=session, id=group_id) + + @pytest.fixture def listener(session): return fbchat.Listener(session=session, chat_on=False, foreground=False) diff --git a/tests/online/test_client.py b/tests/online/test_client.py index 3a17d8b..76d874d 100644 --- a/tests/online/test_client.py +++ b/tests/online/test_client.py @@ -1,5 +1,6 @@ import pytest import fbchat +import datetime import os pytestmark = pytest.mark.online @@ -93,5 +94,9 @@ def test_upload_many(client, open_resource): ) -# def test_mark_as_read(client): -# client.mark_as_read([thread1, thread2]) +def test_mark_as_read(client, user, group): + client.mark_as_read([user, group], datetime.datetime.now()) + + +def test_mark_as_unread(client, user, group): + client.mark_as_unread([user, group], datetime.datetime.now())