mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 21:46:35 +03:00
Merge pull request #2334 from deltachat/adb-issue-2329
Add "override_sender_name" API
This commit is contained in:
@@ -236,6 +236,20 @@ class Message(object):
|
|||||||
chat_id = lib.dc_msg_get_chat_id(self._dc_msg)
|
chat_id = lib.dc_msg_get_chat_id(self._dc_msg)
|
||||||
return Chat(self.account, chat_id)
|
return Chat(self.account, chat_id)
|
||||||
|
|
||||||
|
@props.with_doc
|
||||||
|
def override_sender_name(self):
|
||||||
|
"""the name that should be shown over the message instead of the contact display name.
|
||||||
|
|
||||||
|
Usually used to impersonate someone else.
|
||||||
|
"""
|
||||||
|
return from_dc_charpointer(
|
||||||
|
lib.dc_msg_get_override_sender_name(self._dc_msg))
|
||||||
|
|
||||||
|
def set_override_sender_name(self, name):
|
||||||
|
"""set different sender name for a message. """
|
||||||
|
lib.dc_msg_set_override_sender_name(
|
||||||
|
self._dc_msg, as_dc_charpointer(name))
|
||||||
|
|
||||||
def get_sender_chat(self):
|
def get_sender_chat(self):
|
||||||
"""return the 1:1 chat with the sender of this message.
|
"""return the 1:1 chat with the sender of this message.
|
||||||
|
|
||||||
|
|||||||
@@ -991,6 +991,38 @@ class TestOnlineAccount:
|
|||||||
except queue.Empty:
|
except queue.Empty:
|
||||||
pass # mark_seen_messages() has generated events before it returns
|
pass # mark_seen_messages() has generated events before it returns
|
||||||
|
|
||||||
|
def test_message_override_sender_name(self, acfactory, lp):
|
||||||
|
ac1, ac2 = acfactory.get_two_online_accounts()
|
||||||
|
chat = acfactory.get_accepted_chat(ac1, ac2)
|
||||||
|
overridden_name = "someone else"
|
||||||
|
|
||||||
|
ac1.set_config("displayname", "ac1")
|
||||||
|
|
||||||
|
lp.sec("sending text message with overridden name from ac1 to ac2")
|
||||||
|
msg1 = Message.new_empty(ac1, "text")
|
||||||
|
msg1.set_override_sender_name(overridden_name)
|
||||||
|
msg1.set_text("message1")
|
||||||
|
msg1 = chat.send_msg(msg1)
|
||||||
|
assert msg1.override_sender_name == overridden_name
|
||||||
|
|
||||||
|
lp.sec("wait for ac2 to receive message")
|
||||||
|
msg2 = ac2._evtracker.wait_next_incoming_message()
|
||||||
|
assert msg2.text == "message1"
|
||||||
|
assert msg2.get_sender_contact().name == ac1.get_config("displayname")
|
||||||
|
assert msg2.override_sender_name == overridden_name
|
||||||
|
|
||||||
|
lp.sec("sending normal text message from ac1 to ac2")
|
||||||
|
msg1 = Message.new_empty(ac1, "text")
|
||||||
|
msg1.set_text("message2")
|
||||||
|
msg1 = chat.send_msg(msg1)
|
||||||
|
assert not msg1.override_sender_name
|
||||||
|
|
||||||
|
lp.sec("wait for ac2 to receive message")
|
||||||
|
msg2 = ac2._evtracker.wait_next_incoming_message()
|
||||||
|
assert msg2.text == "message2"
|
||||||
|
assert msg2.get_sender_contact().name == ac1.get_config("displayname")
|
||||||
|
assert not msg2.override_sender_name
|
||||||
|
|
||||||
@pytest.mark.parametrize("mvbox_move", [True, False])
|
@pytest.mark.parametrize("mvbox_move", [True, False])
|
||||||
def test_markseen_message_and_mdn(self, acfactory, mvbox_move):
|
def test_markseen_message_and_mdn(self, acfactory, mvbox_move):
|
||||||
# Please only change this test if you are very sure that it will still catch the issues it catches now.
|
# Please only change this test if you are very sure that it will still catch the issues it catches now.
|
||||||
|
|||||||
Reference in New Issue
Block a user