From e67e684ee01ef177ce76ba08c6365f4316edaf6d Mon Sep 17 00:00:00 2001 From: link2xt Date: Thu, 18 Jan 2024 13:12:35 +0000 Subject: [PATCH] test: wait for joiner success in test_verified_group_[member_added]_recovery If we wait for inviter success, vg-member-added message may be still in flight and reach ac2 after device resetup. Making ac2 wait for joining the group ensures that old device receives vg-member-added message and new device will not receive it and fail to decrypt. Other instances of wait_for_securejoin_inviter_success() in the same tests are also replaced for reliability. --- deltachat-rpc-client/tests/test_securejoin.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/deltachat-rpc-client/tests/test_securejoin.py b/deltachat-rpc-client/tests/test_securejoin.py index d6a716162..462972090 100644 --- a/deltachat-rpc-client/tests/test_securejoin.py +++ b/deltachat-rpc-client/tests/test_securejoin.py @@ -175,7 +175,7 @@ def test_verified_group_recovery(acfactory) -> None: logging.info("ac2 joins verified group") qr_code, _svg = chat.get_qr_code() ac2.secure_join(qr_code) - ac1.wait_for_securejoin_inviter_success() + ac2.wait_for_securejoin_joiner_success() # ac1 has ac2 directly verified. ac1_contact_ac2 = ac1.get_contact_by_addr(ac2.get_config("addr")) @@ -183,7 +183,8 @@ def test_verified_group_recovery(acfactory) -> None: logging.info("ac3 joins verified group") ac3_chat = ac3.secure_join(qr_code) - ac1.wait_for_securejoin_inviter_success() + ac3.wait_for_securejoin_joiner_success() + ac3.wait_for_incoming_msg_event() # Member added logging.info("ac2 logs in on a new device") ac2 = acfactory.resetup_account(ac2) @@ -191,8 +192,7 @@ def test_verified_group_recovery(acfactory) -> None: logging.info("ac2 reverifies with ac3") qr_code, _svg = ac3.get_qr_code() ac2.secure_join(qr_code) - - ac3.wait_for_securejoin_inviter_success() + ac2.wait_for_securejoin_joiner_success() logging.info("ac3 sends a message to the group") assert len(ac3_chat.get_contacts()) == 3 @@ -239,7 +239,7 @@ def test_verified_group_member_added_recovery(acfactory) -> None: logging.info("ac2 joins verified group") qr_code, _svg = chat.get_qr_code() ac2.secure_join(qr_code) - ac1.wait_for_securejoin_inviter_success() + ac2.wait_for_securejoin_joiner_success() # ac1 has ac2 directly verified. ac1_contact_ac2 = ac1.get_contact_by_addr(ac2.get_config("addr")) @@ -247,7 +247,8 @@ def test_verified_group_member_added_recovery(acfactory) -> None: logging.info("ac3 joins verified group") ac3_chat = ac3.secure_join(qr_code) - ac1.wait_for_securejoin_inviter_success() + ac3.wait_for_securejoin_joiner_success() + ac3.wait_for_incoming_msg_event() # Member added logging.info("ac2 logs in on a new device") ac2 = acfactory.resetup_account(ac2) @@ -255,8 +256,7 @@ def test_verified_group_member_added_recovery(acfactory) -> None: logging.info("ac2 reverifies with ac3") qr_code, _svg = ac3.get_qr_code() ac2.secure_join(qr_code) - - ac3.wait_for_securejoin_inviter_success() + ac2.wait_for_securejoin_joiner_success() logging.info("ac3 sends a message to the group") assert len(ac3_chat.get_contacts()) == 3