From 99cd6d10da2fb0eb0ace89495a9ef6ca897d8f13 Mon Sep 17 00:00:00 2001 From: iequidoo Date: Mon, 15 Apr 2024 05:36:27 -0300 Subject: [PATCH] fix(python): _map_ffi_event: Always check if get_message_by_id() returned None As trashed messages can't be loaded from the db now, `get_message_by_id()` returns None in some tests e.g. in `test_deleted_msgs_dont_reappear()`. A `PerAccount` hook shouldn't be called if so. --- python/src/deltachat/events.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/python/src/deltachat/events.py b/python/src/deltachat/events.py index f70df04b9..e6175210e 100644 --- a/python/src/deltachat/events.py +++ b/python/src/deltachat/events.py @@ -328,10 +328,12 @@ class EventThread(threading.Thread): elif name == "DC_EVENT_REACTIONS_CHANGED": assert ffi_event.data1 > 0 msg = account.get_message_by_id(ffi_event.data2) - yield "ac_reactions_changed", {"message": msg} + if msg is not None: + yield "ac_reactions_changed", {"message": msg} elif name == "DC_EVENT_MSG_DELIVERED": msg = account.get_message_by_id(ffi_event.data2) - yield "ac_message_delivered", {"message": msg} + if msg is not None: + yield "ac_message_delivered", {"message": msg} elif name == "DC_EVENT_CHAT_MODIFIED": chat = account.get_chat_by_id(ffi_event.data1) yield "ac_chat_modified", {"chat": chat}