mirror of
https://github.com/chatmail/core.git
synced 2026-05-03 21:36:29 +03:00
test and fix buggy parsing of incoming message which would show MDNs as empty incoming messages
This commit is contained in:
@@ -99,12 +99,16 @@ class FFIEventTracker:
|
|||||||
break
|
break
|
||||||
|
|
||||||
def get_matching(self, event_name_regex, check_error=True, timeout=None):
|
def get_matching(self, event_name_regex, check_error=True, timeout=None):
|
||||||
|
for ev in self.yield_matching(event_name_regex, check_error, timeout):
|
||||||
|
return ev
|
||||||
|
|
||||||
|
def yield_matching(self, event_name_regex, check_error=True, timeout=None):
|
||||||
self.account.log("-- waiting for event with regex: {} --".format(event_name_regex))
|
self.account.log("-- waiting for event with regex: {} --".format(event_name_regex))
|
||||||
rex = re.compile("(?:{}).*".format(event_name_regex))
|
rex = re.compile("(?:{}).*".format(event_name_regex))
|
||||||
while 1:
|
while 1:
|
||||||
ev = self.get(timeout=timeout, check_error=check_error)
|
ev = self.get(timeout=timeout, check_error=check_error)
|
||||||
if rex.match(ev.name):
|
if rex.match(ev.name):
|
||||||
return ev
|
yield ev
|
||||||
|
|
||||||
def get_info_matching(self, regex):
|
def get_info_matching(self, regex):
|
||||||
rex = re.compile("(?:{}).*".format(regex))
|
rex = re.compile("(?:{}).*".format(regex))
|
||||||
|
|||||||
@@ -1087,13 +1087,11 @@ class TestOnlineAccount:
|
|||||||
lp.sec("ac2: mark seen {}".format(msg))
|
lp.sec("ac2: mark seen {}".format(msg))
|
||||||
msg.mark_seen()
|
msg.mark_seen()
|
||||||
|
|
||||||
lp.sec("ac2: send echo message")
|
for ev in ac1._evtracker.yield_matching(""):
|
||||||
msg.chat.send_text("world")
|
if ev.name == "DC_EVENT_INCOMING_MSG":
|
||||||
|
pytest.fail("MDN arrived as regular incoming message")
|
||||||
lp.sec("ac1: waiting for echo message")
|
elif ev.name == "DC_EVENT_MSG_READ":
|
||||||
incoming = message_queue.get(timeout=10)
|
break
|
||||||
assert incoming.text == "world"
|
|
||||||
assert msg.is_in_seen()
|
|
||||||
|
|
||||||
def test_send_and_receive_image(self, acfactory, lp, data):
|
def test_send_and_receive_image(self, acfactory, lp, data):
|
||||||
ac1, ac2 = acfactory.get_two_online_accounts()
|
ac1, ac2 = acfactory.get_two_online_accounts()
|
||||||
|
|||||||
@@ -656,10 +656,10 @@ async fn add_parts(
|
|||||||
.sql
|
.sql
|
||||||
.with_conn(move |mut conn| {
|
.with_conn(move |mut conn| {
|
||||||
let mut ids = Vec::with_capacity(parts.len());
|
let mut ids = Vec::with_capacity(parts.len());
|
||||||
|
let mut is_hidden = is_hidden;
|
||||||
|
|
||||||
for part in &mut parts {
|
for part in &mut parts {
|
||||||
let mut txt_raw = "".to_string();
|
let mut txt_raw = "".to_string();
|
||||||
let mut is_hidden = is_hidden;
|
|
||||||
|
|
||||||
let mut stmt = conn.prepare_cached(
|
let mut stmt = conn.prepare_cached(
|
||||||
"INSERT INTO msgs \
|
"INSERT INTO msgs \
|
||||||
(rfc724_mid, server_folder, server_uid, chat_id, from_id, to_id, timestamp, \
|
(rfc724_mid, server_folder, server_uid, chat_id, from_id, to_id, timestamp, \
|
||||||
|
|||||||
Reference in New Issue
Block a user