From a66808e25a2ca58834b9d1b6213524faffad24c1 Mon Sep 17 00:00:00 2001 From: link2xt Date: Tue, 11 Nov 2025 07:37:19 +0000 Subject: [PATCH] api(rpc-client): add Account.wait_for_msg() --- .../src/deltachat_rpc_client/account.py | 11 ++++++++++- deltachat-rpc-client/tests/test_something.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/deltachat-rpc-client/src/deltachat_rpc_client/account.py b/deltachat-rpc-client/src/deltachat_rpc_client/account.py index 70b823ca6..19109b492 100644 --- a/deltachat-rpc-client/src/deltachat_rpc_client/account.py +++ b/deltachat-rpc-client/src/deltachat_rpc_client/account.py @@ -417,12 +417,21 @@ class Account: """Wait for messages noticed event and return it.""" return self.wait_for_event(EventType.MSGS_NOTICED) + def wait_for_msg(self, event_type) -> Message: + """Wait for an event about the message. + + Consumes all events before the matching event. + Returns a message corresponding to the msg_id field of the event. + """ + event = self.wait_for_event(event_type) + return self.get_message_by_id(event.msg_id) + def wait_for_incoming_msg(self): """Wait for incoming message and return it. Consumes all events before the next incoming message event. """ - return self.get_message_by_id(self.wait_for_incoming_msg_event().msg_id) + return self.wait_for_msg(EventType.INCOMING_MSG) def wait_for_securejoin_inviter_success(self): """Wait until SecureJoin process finishes successfully on the inviter side.""" diff --git a/deltachat-rpc-client/tests/test_something.py b/deltachat-rpc-client/tests/test_something.py index 78090585b..6f888c28b 100644 --- a/deltachat-rpc-client/tests/test_something.py +++ b/deltachat-rpc-client/tests/test_something.py @@ -738,7 +738,7 @@ def test_read_receipt(acfactory): msg = bob.wait_for_incoming_msg() msg.mark_seen() - read_msg = alice.get_message_by_id(alice.wait_for_event(EventType.MSG_READ).msg_id) + read_msg = alice.wait_for_msg(EventType.MSG_READ) read_receipts = read_msg.get_read_receipts() assert len(read_receipts) == 1 assert read_receipts[0].contact_id == alice_contact_bob.id