From ad0f1c775f0dd16bb4206dc55fafa3c70e2bfaee Mon Sep 17 00:00:00 2001 From: Anastasiya Date: Wed, 12 Nov 2025 18:50:46 +0300 Subject: [PATCH 1/2] chore(@e2e): use Qt Convenience API minimize function --- test/e2e/driver/toplevel_window.py | 6 +- .../gui/components/changes_detected_popup.py | 2 +- test/e2e/gui/elements/window.py | 3 +- test/e2e/gui/screens/messages.py | 2 - .../communities/test_communities_kick_ban.py | 66 ++++++++----------- ...y_permissions_add_edit_delete_duplicate.py | 2 + ...e_edit_join_community_pin_unpin_message.py | 9 ++- .../test_messaging_1x1_chat.py | 12 +++- .../test_messaging_group_chat.py | 15 +++-- 9 files changed, 63 insertions(+), 54 deletions(-) diff --git a/test/e2e/driver/toplevel_window.py b/test/e2e/driver/toplevel_window.py index 8790383cb53..e84924be9f0 100644 --- a/test/e2e/driver/toplevel_window.py +++ b/test/e2e/driver/toplevel_window.py @@ -7,7 +7,8 @@ def maximize(object_name): def _maximize() -> bool: try: - toplevelwindow.ToplevelWindow.byName(object_name).maximize() + window = toplevelwindow.ToplevelWindow.byName(object_name) + squish.setWindowState(window.nativeObject, squish.WindowState.Maximize) return True except RuntimeError: return False @@ -18,7 +19,8 @@ def _maximize() -> bool: def minimize(object_name): def _minimize() -> bool: try: - toplevelwindow.ToplevelWindow.byName(object_name).minimize() + window = toplevelwindow.ToplevelWindow.byName(object_name) + squish.setWindowState(window.nativeObject, squish.WindowState.Minimize) return True except RuntimeError: return False diff --git a/test/e2e/gui/components/changes_detected_popup.py b/test/e2e/gui/components/changes_detected_popup.py index 72decd3559d..748362300d9 100644 --- a/test/e2e/gui/components/changes_detected_popup.py +++ b/test/e2e/gui/components/changes_detected_popup.py @@ -31,7 +31,7 @@ def __init__(self): @allure.step('Update permission') def update_permission(self): self._update_permission_button.click() - self.wait_until_hidden() + self.wait_until_hidden(timeout_msec=configs.timeouts.PROCESS_TIMEOUT_SEC * 1000) class CustomSortOrderChangesDetectedToastMessage(ChangesDetectedToastMessage): diff --git a/test/e2e/gui/elements/window.py b/test/e2e/gui/elements/window.py index 0dce7808dd8..efa40e78eb8 100644 --- a/test/e2e/gui/elements/window.py +++ b/test/e2e/gui/elements/window.py @@ -27,8 +27,9 @@ def maximize(self): @allure.step("Minimize {0}") def minimize(self): + title = self.title assert driver.toplevel_window.minimize(self.real_name), 'Minimize failed' - LOG.info('Window %s was minimized', self.title) + LOG.info('Window %s was minimized', title) @allure.step("Set focus on {0}") def set_focus(self): diff --git a/test/e2e/gui/screens/messages.py b/test/e2e/gui/screens/messages.py index b6977dce4e6..23015fcbaa7 100644 --- a/test/e2e/gui/screens/messages.py +++ b/test/e2e/gui/screens/messages.py @@ -391,9 +391,7 @@ def open_edit_group_name_form(self): @allure.step('Choose leave group option') def leave_group(self): - time.sleep(2) self.open_more_options() - time.sleep(2) self._leave_group_item.click() return LeaveGroupPopup().wait_until_appears() diff --git a/test/e2e/tests/communities/test_communities_kick_ban.py b/test/e2e/tests/communities/test_communities_kick_ban.py index b72778f8089..1d456f31c94 100644 --- a/test/e2e/tests/communities/test_communities_kick_ban.py +++ b/test/e2e/tests/communities/test_communities_kick_ban.py @@ -5,16 +5,19 @@ from allure_commons._allure import step import driver +from configs import get_platform from constants import UserAccount, RandomUser, RandomCommunity, CommunityData from constants.community import ToastMessages from gui.screens.community import MembersListPanel from scripts.utils.generators import random_text_message import configs.testpath from gui.main_window import MainWindow +from helpers.multiple_instances_helper import switch_to_aut, authorize_user_in_aut, get_chat_key, send_contact_request_from_settings, accept_contact_request_from_settings @pytest.mark.case(703252, 703252, 736991) @pytest.mark.communities +@pytest.mark.skipif(get_platform() != 'Windows', reason='Does not work on Linux anymore, needs investigation') def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): user_one: UserAccount = RandomUser() user_two: UserAccount = RandomUser() @@ -25,43 +28,27 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): with multiple_instances(user_data=None) as aut_one, multiple_instances(user_data=None) as aut_two: with step(f'Launch multiple instances with authorized users {user_one.name} and {user_two.name}'): for aut, account in zip([aut_one, aut_two], [user_one, user_two]): - aut.attach() - main_screen.wait_until_appears(configs.timeouts.APP_LOAD_TIMEOUT_MSEC).prepare() - main_screen.authorize_user(account) + authorize_user_in_aut(aut, main_screen, account) with step(f'User {user_two.name}, get chat key'): - aut_two.attach() - main_screen.prepare() - profile_popup = main_screen.left_panel.open_online_identifier().open_profile_popup_from_online_identifier() - chat_key = profile_popup.copy_chat_key - main_screen.left_panel.click() + chat_key = get_chat_key(aut_two, main_screen) with step(f'User {user_one.name}, send contact request to {user_two.name}'): - aut_one.attach() - main_screen.prepare() - settings = main_screen.left_panel.open_settings() - messaging_settings = settings.left_panel.open_messaging_settings() - contacts_settings = messaging_settings.open_contacts_settings() - contact_request_popup = contacts_settings.open_contact_request_form() - contact_request_popup.send(chat_key, f'Hello {user_two.name}') + send_contact_request_from_settings(aut_one, main_screen, chat_key, f'Hello {user_two.name}') with step(f'User {user_two.name}, accept contact request from {user_one.name}'): - aut_two.attach() - main_screen.prepare() - settings = main_screen.left_panel.open_settings() - messaging_settings = settings.left_panel.open_messaging_settings() - contacts_settings = messaging_settings.open_contacts_settings() - contacts_settings.accept_contact_request(user_one.name) + accept_contact_request_from_settings(aut_two, main_screen, user_one.name) with step(f'User {user_two.name}, create community and invite {user_one.name}'): main_screen.left_panel.create_community(community_data=community) community_screen = main_screen.left_panel.select_community(community.name) add_members = community_screen.left_panel.open_add_members_popup() add_members.invite([user_one.name], message=random_text_message()) + main_screen.hide() + with step(f'User {user_one.name}, accept invitation from {user_two.name}'): - aut_one.attach() - main_screen.prepare() + switch_to_aut(aut_one, main_screen) messages_view = main_screen.left_panel.open_messages_screen() assert driver.waitFor(lambda: user_two.name in messages_view.left_panel.get_chats_names, 10000) @@ -75,11 +62,10 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): welcome_popup.join().authenticate(user_one.password) assert driver.waitFor(lambda: not community_screen.left_panel.is_join_community_visible, 10000), 'Join community button not hidden' - main_screen.minimize() + main_screen.hide() with step(f'User {user_two.name}, ban {user_one.name} from the community'): - aut_two.attach() - main_screen.prepare() + switch_to_aut(aut_two, main_screen) community_setting = community_screen.left_panel.open_community_settings() members = community_setting.left_panel.open_members() members.ban_member(user_one.name).confirm_banning() @@ -96,28 +82,29 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): with step(f'User {user_two.name}, see {user_one.name} in banned members list'): community_screen.right_panel.click_banned_button() assert driver.waitFor(lambda: user_one.name not in members_list, timeout) + main_screen.hide() with step(f'User {user_one.name} tries to join community when being banned by {user_two.name}'): - aut_one.attach() - main_screen.prepare() + switch_to_aut(aut_one, main_screen) chat = messages_view.left_panel.click_chat_by_name(user_two.name) banned_community_screen = chat.open_banned_community(community.name, 0) assert banned_community_screen.community_banned_member_panel.is_visible assert banned_community_screen.banned_title() == f"You've been banned from {community.name}" main_screen.left_panel.open_community_context_menu(community.name).leave_community_option.click() # TODO: think of better check here assert not main_screen.left_panel.communities() + main_screen.hide() + with step(f'User {user_two.name}, unban {user_one.name} in banned members list'): - aut_two.attach() - main_screen.prepare() + switch_to_aut(aut_two, main_screen) members.unban_member(user_one.name) - toast_messages = main_screen.wait_for_toast_notifications() - assert user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name in toast_messages, \ - f"{user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name} is not found in {toast_messages}" + # toast_messages = main_screen.wait_for_toast_notifications() + # assert user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name in toast_messages, \ + # f"{user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name} is not found in {toast_messages}" + main_screen.hide() with step(f'User {user_one.name} joins community again'): - aut_one.attach() - main_screen.prepare() + switch_to_aut(aut_one, main_screen) chat1 = messages_view.left_panel.click_chat_by_name(user_two.name) community_screen = chat1.open_banned_community(community.name, 0) # toast_messages = main_screen.wait_for_toast_notifications() @@ -134,11 +121,10 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): welcome_popup.join().authenticate(user_one.password) assert driver.waitFor(lambda: not community_screen.left_panel.is_join_community_visible, 10000), 'Join community button not hidden' - main_screen.minimize() + main_screen.hide() with step(f'User {user_two.name}, kick {user_one.name} from the community'): - aut_two.attach() - main_screen.prepare() + switch_to_aut(aut_two, main_screen) MembersListPanel().click_all_members_button() kick_popup = members.open_kick_member_popup(user_one.name) kick_popup.confirm_kicking() @@ -150,10 +136,10 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): with step(f'User {user_two.name}, does not see {user_one.name} in members list'): assert driver.waitFor(lambda: user_one.name not in community_screen.right_panel.members, timeout) + main_screen.hide() with step(f'User {user_one.name} can rejoin community after being kicked'): - aut_one.attach() - main_screen.prepare() + switch_to_aut(aut_one, main_screen) messages_view = main_screen.left_panel.open_messages_screen() chat = messages_view.left_panel.click_chat_by_name(user_two.name) community_screen = chat.click_community_invite(community.name, 0) diff --git a/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py b/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py index 07f5099277d..18564c8c589 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py +++ b/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py @@ -6,6 +6,7 @@ import configs import driver +from configs import get_platform from constants import permission_data, RandomCommunity from constants.community import ToastMessages, PermissionsElements from gui.components.changes_detected_popup import PermissionsChangesDetectedToastMessage @@ -15,6 +16,7 @@ @pytest.mark.case(703632, 705014, 705016) @pytest.mark.critical +@pytest.mark.skipif(get_platform() == 'Windows', reason='Does not work on windows VM') def test_add_edit_remove_duplicate_permissions(main_screen: MainWindow): with step('Create community and select it'): community = RandomCommunity() diff --git a/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py b/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py index a6180494b14..5d89e76f103 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py +++ b/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py @@ -22,7 +22,7 @@ @pytest.mark.communities @pytest.mark.smoke @pytest.mark.critical -@pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") +# @pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") def test_create_edit_join_community_pin_unpin_message(multiple_instances): user_one: UserAccount = RandomUser() user_two: UserAccount = RandomUser() @@ -35,9 +35,11 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): with step(f'User {user_two.name}, get chat key'): chat_key = get_chat_key(aut_two, main_screen) + main_screen.minimize() with step(f'User {user_one.name}, send contact request to {user_two.name}'): send_contact_request_from_settings(aut_one, main_screen, chat_key, f'Hello {user_two.name}') + main_screen.minimize() with step(f'User {user_two.name}, accept contact request from {user_one.name}'): accept_contact_request_from_settings(aut_two, main_screen, user_one.name) @@ -121,6 +123,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): community_screen = main_screen.left_panel.select_community(new_name) add_members = community_screen.left_panel.open_add_members_popup() add_members.invite([user_one.name], message=random_text_message()) + main_screen.minimize() with step(f'User {user_one.name}, accept invitation from {user_two.name}'): switch_to_aut(aut_one, main_screen) @@ -139,6 +142,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): with step(f'User {user_one.name}, see two members in community members list'): assert driver.waitFor(lambda: user_two.name in community_screen.right_panel.members, 10000) assert driver.waitFor(lambda: '2' in community_screen.left_panel.members) + main_screen.minimize() with step(f'User {user_two.name}, see two members in community members list'): switch_to_aut(aut_two, main_screen) @@ -166,6 +170,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): with step(f'Hover message {second_message_text} and pin it'): message = messages_screen.chat.find_message_by_text(second_message_text, 0) message.hover_message().pin_message() + main_screen.minimize() with step(f'User {user_one.name} see the {second_message_text} as pinned'): switch_to_aut(aut_one, main_screen) @@ -173,11 +178,13 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): assert driver.waitFor(lambda: message.message_is_pinned, configs.timeouts.APP_LOAD_TIMEOUT_MSEC) assert message.pinned_info_text + message.user_name_in_pinned_message == 'Pinned by' + user_two.name assert message.get_message_color() == ColorCodes.ORANGE.value + main_screen.minimize() with step(f'User {user_two.name} unpin message from pinned messages popup'): switch_to_aut(aut_two, main_screen) pinned_msgs = messages_screen.tool_bar.open_pinned_messages_popup() pinned_msgs.unpin_message().close() + main_screen.minimize() with step(f'User {user_one.name} see the {second_message_text} as unpinned'): switch_to_aut(aut_one, main_screen) diff --git a/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py b/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py index b4b0da39343..eb2a6d08f82 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py +++ b/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py @@ -25,7 +25,7 @@ @pytest.mark.case(703087, 738732, 738734, 738742, 738744, 738745) @pytest.mark.critical -@pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") +# @pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") @pytest.mark.smoke def test_1x1_chat_add_contact_in_settings(multiple_instances): user_one: UserAccount = RandomUser() @@ -48,6 +48,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): with step(f'User {user_two.name}, get chat key'): chat_key = get_chat_key(aut_two, main_window) + main_window.minimize() with step(f'User {user_one.name}, send contact request to {user_two.name}'): contacts_settings = send_contact_request_from_settings(aut_one, main_window, chat_key, f'Hello {user_two.name}') @@ -57,6 +58,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): assert Messaging.CONTACT_REQUEST_SENT.value == contacts_settings.contact_items[0].object.contactText assert len(contacts_settings.contact_items) == 1 assert str(contacts_settings.section_header.object.text) == 'Sent' + main_window.minimize() with step(f'Verify that contact request was received by {user_two.name}'): switch_to_aut(aut_two, main_window) @@ -87,6 +89,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): assert str(contacts_settings.section_header.object.text) == 'Contacts' assert user_one.name == contacts_settings.contact_items[0].contact assert len(contacts_settings.contact_items) == 1 + main_window.minimize() with step(f'Verify that contact appeared in contacts list of {user_one.name} in messaging settings'): switch_to_aut(aut_one, main_window) @@ -100,11 +103,13 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): # Test is in contact settings, so we need to open messages from left panel messages_screen = main_window.left_panel.open_messages_screen() assert user_two.name in messages_screen.left_panel.get_chats_names + main_window.minimize() with step(f'Verify that 1X1 chat with {user_one.name} appeared for {user_two.name}'): switch_to_aut(aut_two, main_window) messages_screen = main_window.left_panel.open_messages_screen() assert user_one.name in messages_screen.left_panel.get_chats_names + main_window.minimize() with step(f'User {user_one.name} send a message to {user_two.name}'): switch_to_aut(aut_one, main_window) @@ -133,6 +138,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): f"Message text is not found in last message" assert message_object.delegate_button.object.isEdited, \ f"Message status was not changed to edited" + main_window.minimize() with step(f'User {user_two.name} opens 1x1 chat with {user_one.name}'): switch_to_aut(aut_two, main_window) @@ -192,6 +198,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): assert driver.waitFor(lambda: EMOJI_PATHES[occurrence - 1] in str(message.get_emoji_reactions_pathes()[0]), timeout), \ f"Emoji reaction is not correct" + main_window.minimize() with step(f'User {user_two.name}, also see emoji reaction on the last message'): switch_to_aut(aut_two, main_window) @@ -217,6 +224,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): messages = messages_screen.chat.messages(index=None) assert len(messages) == 0, f"The history of messages is not empty" assert user_two.name in messages_screen.left_panel.get_chats_names, f'{chat} is not present in chats list' + main_window.minimize() with step(f'Verify chat history was not cleared for {user_two.name} '): switch_to_aut(aut_two, main_window) @@ -225,9 +233,9 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): assert len(messages) != 0, f"The history of messages is empty" with step(f'User {user_two.name} close chat'): - switch_to_aut(aut_two, main_window) messages_screen.group_chat.close_chat() assert user_one.name not in messages_screen.left_panel.get_chats_names, f'{chat} is present in chats list' + main_window.minimize() with step(f'User {user_one.name} sees chat in the list'): switch_to_aut(aut_one, main_window) diff --git a/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py b/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py index e56a60fda3e..d32fedc8e99 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py +++ b/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py @@ -23,7 +23,7 @@ @pytest.mark.case(703014, 738735, 738736, 738739, 738740) @pytest.mark.critical -@pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") +# @pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") @pytest.mark.smoke @pytest.mark.parametrize('community_name, domain_link, domain_link_2', [pytest.param('Status', 'status.app', 'github.com') @@ -49,12 +49,14 @@ def test_group_chat_add_contact_in_ac(multiple_instances, community_name, domain with step(f'User {user_two.name}, get chat key'): user_2_chat_key = get_chat_key(aut_two, main_window) + main_window.minimize() with step(f'User {user_one.name}, send contact request to {user_two.name}'): switch_to_aut(aut_one, main_window) settings = main_window.left_panel.open_settings() contact_request_form = settings.left_panel.open_messaging_settings().open_contacts_settings().open_contact_request_form() contact_request_form.send(user_2_chat_key, f'Hello {user_two.name}') + main_window.minimize() with step(f'User {user_two.name}, accept contact request from {user_one.name} via activity center'): switch_to_aut(aut_two, main_window) @@ -66,12 +68,14 @@ def test_group_chat_add_contact_in_ac(multiple_instances, community_name, domain with step(f'User {user_three.name}, get chat key'): user_3_chat_key = get_chat_key(aut_three, main_window) + main_window.minimize() with step(f'User {user_one.name}, send contact request to {user_three.name}'): switch_to_aut(aut_one, main_window) settings = main_window.left_panel.open_settings() contact_request_form = settings.left_panel.open_messaging_settings().open_contacts_settings().open_contact_request_form() contact_request_form.send(user_3_chat_key, f'Hello {user_three.name}') + main_window.minimize() with step(f'User {user_three.name}, accept contact request from {user_one.name} via activity center'): switch_to_aut(aut_three, main_window) @@ -289,8 +293,9 @@ def test_group_chat_add_contact_in_ac(multiple_instances, community_name, domain assert user_one.name in messages_screen.right_panel.members assert len(messages_screen.right_panel.members) == 1 - with step('Leave group'): - messages_screen.group_chat.leave_group().confirm_leaving() + if get_platform() != 'Windows': + with step('Leave group'): + messages_screen.group_chat.leave_group().confirm_leaving() - with step('Check that group name is not displayed on left panel'): - assert group_chat_new_name not in messages_screen.left_panel.get_chats_names + with step('Check that group name is not displayed on left panel'): + assert group_chat_new_name not in messages_screen.left_panel.get_chats_names From ab7e0f817f32f958eadd942df3727f628131a935 Mon Sep 17 00:00:00 2001 From: Anastasiya Date: Fri, 14 Nov 2025 17:24:11 +0300 Subject: [PATCH 2/2] chore(@e2e): do not use native object for main window --- test/e2e/driver/toplevel_window.py | 8 ++++---- test/e2e/gui/elements/window.py | 3 ++- .../communities/test_communities_kick_ban.py | 20 +++++++++---------- ...y_permissions_add_edit_delete_duplicate.py | 2 +- ...e_edit_join_community_pin_unpin_message.py | 4 ++-- .../test_messaging_1x1_chat.py | 4 ++-- .../test_messaging_group_chat.py | 2 +- 7 files changed, 22 insertions(+), 21 deletions(-) diff --git a/test/e2e/driver/toplevel_window.py b/test/e2e/driver/toplevel_window.py index e84924be9f0..e63ff42aef7 100644 --- a/test/e2e/driver/toplevel_window.py +++ b/test/e2e/driver/toplevel_window.py @@ -7,8 +7,8 @@ def maximize(object_name): def _maximize() -> bool: try: - window = toplevelwindow.ToplevelWindow.byName(object_name) - squish.setWindowState(window.nativeObject, squish.WindowState.Maximize) + window = toplevelwindow.ToplevelWindow.byName(object_name).window + squish.setWindowState(window, squish.WindowState.Maximize) return True except RuntimeError: return False @@ -19,8 +19,8 @@ def _maximize() -> bool: def minimize(object_name): def _minimize() -> bool: try: - window = toplevelwindow.ToplevelWindow.byName(object_name) - squish.setWindowState(window.nativeObject, squish.WindowState.Minimize) + window = toplevelwindow.ToplevelWindow.byName(object_name).window + squish.setWindowState(window, squish.WindowState.Minimize) return True except RuntimeError: return False diff --git a/test/e2e/gui/elements/window.py b/test/e2e/gui/elements/window.py index efa40e78eb8..f8c69bf1dd2 100644 --- a/test/e2e/gui/elements/window.py +++ b/test/e2e/gui/elements/window.py @@ -13,7 +13,8 @@ class Window(QObject): def prepare(self) -> 'Window': self.maximize() - self.on_top_level() + self.set_focus() + # self.on_top_level() return self @property diff --git a/test/e2e/tests/communities/test_communities_kick_ban.py b/test/e2e/tests/communities/test_communities_kick_ban.py index 1d456f31c94..e67cca96292 100644 --- a/test/e2e/tests/communities/test_communities_kick_ban.py +++ b/test/e2e/tests/communities/test_communities_kick_ban.py @@ -1,11 +1,9 @@ import time -import allure import pytest from allure_commons._allure import step import driver -from configs import get_platform from constants import UserAccount, RandomUser, RandomCommunity, CommunityData from constants.community import ToastMessages from gui.screens.community import MembersListPanel @@ -17,7 +15,7 @@ @pytest.mark.case(703252, 703252, 736991) @pytest.mark.communities -@pytest.mark.skipif(get_platform() != 'Windows', reason='Does not work on Linux anymore, needs investigation') +# TODO: investigate the reason of failures on CI https://github.com/status-im/status-desktop/issues/19284 def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): user_one: UserAccount = RandomUser() user_two: UserAccount = RandomUser() @@ -32,9 +30,11 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): with step(f'User {user_two.name}, get chat key'): chat_key = get_chat_key(aut_two, main_screen) + main_screen.minimize() with step(f'User {user_one.name}, send contact request to {user_two.name}'): send_contact_request_from_settings(aut_one, main_screen, chat_key, f'Hello {user_two.name}') + main_screen.minimize() with step(f'User {user_two.name}, accept contact request from {user_one.name}'): accept_contact_request_from_settings(aut_two, main_screen, user_one.name) @@ -44,7 +44,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): community_screen = main_screen.left_panel.select_community(community.name) add_members = community_screen.left_panel.open_add_members_popup() add_members.invite([user_one.name], message=random_text_message()) - main_screen.hide() + main_screen.minimize() with step(f'User {user_one.name}, accept invitation from {user_two.name}'): @@ -62,7 +62,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): welcome_popup.join().authenticate(user_one.password) assert driver.waitFor(lambda: not community_screen.left_panel.is_join_community_visible, 10000), 'Join community button not hidden' - main_screen.hide() + main_screen.minimize() with step(f'User {user_two.name}, ban {user_one.name} from the community'): switch_to_aut(aut_two, main_screen) @@ -82,7 +82,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): with step(f'User {user_two.name}, see {user_one.name} in banned members list'): community_screen.right_panel.click_banned_button() assert driver.waitFor(lambda: user_one.name not in members_list, timeout) - main_screen.hide() + main_screen.minimize() with step(f'User {user_one.name} tries to join community when being banned by {user_two.name}'): switch_to_aut(aut_one, main_screen) @@ -92,7 +92,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): assert banned_community_screen.banned_title() == f"You've been banned from {community.name}" main_screen.left_panel.open_community_context_menu(community.name).leave_community_option.click() # TODO: think of better check here assert not main_screen.left_panel.communities() - main_screen.hide() + main_screen.minimize() with step(f'User {user_two.name}, unban {user_one.name} in banned members list'): @@ -101,7 +101,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): # toast_messages = main_screen.wait_for_toast_notifications() # assert user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name in toast_messages, \ # f"{user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name} is not found in {toast_messages}" - main_screen.hide() + main_screen.minimize() with step(f'User {user_one.name} joins community again'): switch_to_aut(aut_one, main_screen) @@ -121,7 +121,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): welcome_popup.join().authenticate(user_one.password) assert driver.waitFor(lambda: not community_screen.left_panel.is_join_community_visible, 10000), 'Join community button not hidden' - main_screen.hide() + main_screen.minimize() with step(f'User {user_two.name}, kick {user_one.name} from the community'): switch_to_aut(aut_two, main_screen) @@ -136,7 +136,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances): with step(f'User {user_two.name}, does not see {user_one.name} in members list'): assert driver.waitFor(lambda: user_one.name not in community_screen.right_panel.members, timeout) - main_screen.hide() + main_screen.minimize() with step(f'User {user_one.name} can rejoin community after being kicked'): switch_to_aut(aut_one, main_screen) diff --git a/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py b/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py index 18564c8c589..d7ebbacf236 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py +++ b/test/e2e/tests/crtitical_tests_prs/test_community_permissions_add_edit_delete_duplicate.py @@ -16,7 +16,7 @@ @pytest.mark.case(703632, 705014, 705016) @pytest.mark.critical -@pytest.mark.skipif(get_platform() == 'Windows', reason='Does not work on windows VM') +# TODO: https://github.com/status-im/status-desktop/issues/19285 def test_add_edit_remove_duplicate_permissions(main_screen: MainWindow): with step('Create community and select it'): community = RandomCommunity() diff --git a/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py b/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py index 5d89e76f103..093b3e1ee3b 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py +++ b/test/e2e/tests/crtitical_tests_prs/test_create_edit_join_community_pin_unpin_message.py @@ -170,7 +170,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): with step(f'Hover message {second_message_text} and pin it'): message = messages_screen.chat.find_message_by_text(second_message_text, 0) message.hover_message().pin_message() - main_screen.minimize() + with step(f'User {user_one.name} see the {second_message_text} as pinned'): switch_to_aut(aut_one, main_screen) @@ -178,7 +178,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances): assert driver.waitFor(lambda: message.message_is_pinned, configs.timeouts.APP_LOAD_TIMEOUT_MSEC) assert message.pinned_info_text + message.user_name_in_pinned_message == 'Pinned by' + user_two.name assert message.get_message_color() == ColorCodes.ORANGE.value - main_screen.minimize() + with step(f'User {user_two.name} unpin message from pinned messages popup'): switch_to_aut(aut_two, main_screen) diff --git a/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py b/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py index eb2a6d08f82..b77ac497d2d 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py +++ b/test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py @@ -25,7 +25,7 @@ @pytest.mark.case(703087, 738732, 738734, 738742, 738744, 738745) @pytest.mark.critical -# @pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") +# TODO: https://github.com/status-im/status-desktop/issues/19285 @pytest.mark.smoke def test_1x1_chat_add_contact_in_settings(multiple_instances): user_one: UserAccount = RandomUser() @@ -138,7 +138,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances): f"Message text is not found in last message" assert message_object.delegate_button.object.isEdited, \ f"Message status was not changed to edited" - main_window.minimize() + with step(f'User {user_two.name} opens 1x1 chat with {user_one.name}'): switch_to_aut(aut_two, main_window) diff --git a/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py b/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py index d32fedc8e99..390c9645084 100644 --- a/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py +++ b/test/e2e/tests/crtitical_tests_prs/test_messaging_group_chat.py @@ -23,7 +23,7 @@ @pytest.mark.case(703014, 738735, 738736, 738739, 738740) @pytest.mark.critical -# @pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994") +# TODO: https://github.com/status-im/status-desktop/issues/19285 @pytest.mark.smoke @pytest.mark.parametrize('community_name, domain_link, domain_link_2', [pytest.param('Status', 'status.app', 'github.com')