test: add get_protected_chat to testplugin.py

This commit is contained in:
missytake
2023-12-22 01:04:44 +01:00
parent 4186d78305
commit 36cab40ac1
2 changed files with 29 additions and 15 deletions

View File

@@ -10,6 +10,7 @@ import time
import weakref
import random
from queue import Queue
from threading import Event
from typing import Callable, Dict, List, Optional, Set
import pytest
@@ -590,6 +591,25 @@ class ACFactory:
ac2.create_chat(ac1)
return ac1.create_chat(ac2)
def get_protected_chat(self, ac1: Account, ac2: Account):
class SetupPlugin:
def __init__(self) -> None:
self.member_added = Event()
@account_hookimpl
def ac_member_added(self, chat: deltachat.Chat, contact, actor, message):
self.member_added.set()
setupplugin = SetupPlugin()
ac1.add_account_plugin(setupplugin)
chat = ac1.create_group_chat("Protected Group", verified=True)
qr = chat.get_join_qr()
ac2.qr_join_chat(qr)
setupplugin.member_added.wait(timeout=30)
ac2.wait_next_incoming_message()
ac2.wait_next_incoming_message()
return chat
def introduce_each_other(self, accounts, sending=True):
to_wait = []
for i, acc in enumerate(accounts):

View File

@@ -500,26 +500,20 @@ def test_forward_messages(acfactory, lp):
def test_forward_encrypted_to_unencrypted(acfactory, lp):
ac1, ac2, ac3 = acfactory.get_online_accounts(3)
chat = acfactory.get_accepted_chat(ac1, ac2)
chat = acfactory.get_protected_chat(ac1, ac2)
lp.sec("ac1: send unencrypted message to ac2")
txt = "This is still unencrypted"
lp.sec("ac1: send encrypted message to ac2")
txt = "This should be encrypted"
chat.send_text(txt)
msg = ac2.wait_next_incoming_message()
assert msg.text == txt
assert not msg.is_encrypted()
assert msg.is_encrypted()
lp.sec("ac2: send encrypted message to ac1")
txt = "This should be encrypted now"
msg.chat.send_text(txt)
msg2 = ac1.wait_next_incoming_message()
assert msg2.is_encrypted()
lp.sec("ac1: forward message to ac3 unencrypted ")
unencrypted_chat = ac1.create_chat(ac3)
msg3 = unencrypted_chat.send_msg(msg)
assert not msg3.is_encrypted()
assert msg2.is_encrypted()
lp.sec("ac2: forward message to ac3 unencrypted ")
unencrypted_chat = ac2.create_chat(ac3)
msg2 = unencrypted_chat.send_msg(msg)
assert not msg2.is_encrypted()
assert msg.is_encrypted()
def test_forward_own_message(acfactory, lp):