1
0
Fork 0
mirror of https://github.com/deltachat/deltachat-core.git synced 2025-10-04 18:29:19 +02:00

introduce message.get_state() API which provides is_in_delivered()|is_out_delivered|... methods.

This commit is contained in:
holger krekel 2018-09-14 21:43:52 +02:00
parent 959ac73122
commit da2bcd0c5a
4 changed files with 96 additions and 16 deletions

View file

@ -56,6 +56,15 @@ class TestOfflineAccount:
chat = ac1.create_chat_by_contact(contact1)
msg = chat.send_text_message("msg1")
assert msg
msg_state = msg.get_state()
assert not msg_state.is_in_fresh()
assert not msg_state.is_in_noticed()
assert not msg_state.is_in_seen()
# XXX the following line should work but doesn't:
# assert msg_state.is_out_pending()
assert not msg_state.is_out_failed()
assert not msg_state.is_out_delivered()
assert not msg_state.is_out_mdn_received()
class TestOnlineAccount:
@ -103,26 +112,27 @@ class TestOnlineAccount:
self.wait_successful_IMAP_SMTP_connection(ac2)
self.wait_configuration_progress(ac1, 1000)
self.wait_configuration_progress(ac2, 1000)
msg = chat.send_text_message("msg1")
msg_out = chat.send_text_message("message1")
ev = ac1._evlogger.get_matching("DC_EVENT_MSG_DELIVERED")
evt_name, data1, data2 = ev
assert data1 == chat.id
assert data2 == msg.id
assert data2 == msg_out.id
assert msg_out.get_state().is_out_delivered()
# wait for other account to receive
ev = ac2._evlogger.get_matching("DC_EVENT_MSGS_CHANGED")
assert ev[2] == msg.id
msg2 = ac2.get_message_by_id(msg.id)
assert msg2.text == "msg1"
assert ev[2] == msg_out.id
msg_in = ac2.get_message_by_id(msg_out.id)
assert msg_in.text == "message1"
# check the message arrived in contact-requets/deaddrop
chat2 = msg2.chat
assert msg2 in chat2.get_messages()
chat2 = msg_in.chat
assert msg_in in chat2.get_messages()
assert chat2.is_deaddrop()
assert chat2.count_fresh_messages() == 0
# create new chat with contact and verify it's proper
chat2b = ac2.create_chat_by_message(msg2)
chat2b = ac2.create_chat_by_message(msg_in)
assert not chat2b.is_deaddrop()
assert chat2b.count_fresh_messages() == 1
@ -131,8 +141,6 @@ class TestOnlineAccount:
assert chat2b.count_fresh_messages() == 0
# mark messages as seen and check ac1 sees the MDN
ac2.mark_seen_messages([msg2])
while 1:
ev = ac1._evlogger.get_matching("DC_EVENT_INFO")
if "Marking message" in ev[2]:
break
ac2.mark_seen_messages([msg_in])
ac1._evlogger.get_matching("DC_EVENT_MSGS_CHANGED")
assert msg_out.get_state().is_out_mdn_received()