chore: replace file dialog interactions with direct function

This commit is contained in:
Anastasiya Semenkevich 2024-02-15 13:37:40 +03:00 committed by Anastasiya
parent 774916db18
commit 1fc44f5e3d
8 changed files with 25 additions and 17 deletions

View File

@ -90,7 +90,7 @@ class CreateCommunityPopup(BasePopup):
@allure.step('Set community logo')
def logo(self, kwargs: dict):
self._open_logo_file_dialog().open_file(kwargs['fp'])
PictureEditPopup().wait_until_appears().make_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
PictureEditPopup().wait_until_appears().set_zoom_shift_for_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
@property
@allure.step('Get community banner')
@ -101,7 +101,7 @@ class CreateCommunityPopup(BasePopup):
def banner(self, kwargs: dict):
self._add_banner_button.click()
OpenFileDialog().wait_until_appears().open_file(kwargs['fp'])
PictureEditPopup().wait_until_appears().make_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
PictureEditPopup().wait_until_appears().set_zoom_shift_for_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
@allure.step('Set community logo without file upload dialog')
def set_logo_without_file_upload_dialog(self, path):
@ -164,9 +164,9 @@ class CreateCommunityPopup(BasePopup):
@allure.step('Create community without file upload dialog usage')
def create_community(self, kwargs):
self.set_logo_without_file_upload_dialog(kwargs['logo']['fp'])
PictureEditPopup().make_picture(None, None)
PictureEditPopup().set_zoom_shift_for_picture(None, None)
self.set_banner_without_file_upload_dialog(kwargs['banner']['fp'])
PictureEditPopup().make_picture(None, None)
PictureEditPopup().set_zoom_shift_for_picture(None, None)
for key in list(kwargs):
if key in ['intro', 'outro'] and self._next_button.is_visible:
self._next_button.click()

View File

@ -23,7 +23,7 @@ class PictureEditPopup(BasePopup):
self._slider_handler = QObject(names.o_DropShadow)
@allure.step('Make picture')
def make_picture(
def set_zoom_shift_for_picture(
self,
zoom: int = None,
shift: shift_image = None

View File

@ -906,7 +906,7 @@ mainWindow_insertDetailsViewChatKeyTxt_StyledText = {"container": mainWindow_Ins
mainWindow_EmojiHash = {"container": statusDesktop_mainWindow, "objectName": "publicKeyEmojiHash", "type": "EmojiHash", "visible": True}
mainWindow_Header_Title = {"container": statusDesktop_mainWindow, "objectName": "onboardingHeaderText", "type": "StyledText", "visible": True}
mainWindow_userImageCopy_StatusSmartIdenticon = {"container": mainWindow_InsertDetailsView, "id": "userImageCopy", "type": "StatusSmartIdenticon", "unnamed": 1, "visible": True}
profileImageCropper = {"container": statusDesktop_mainWindow, "objectName": "imageCropWorkflow", "type": "ImageCropWorkflow", "visible": True}
# Create Password View
mainWindow_CreatePasswordView = {"container": statusDesktop_mainWindow, "type": "CreatePasswordView", "unnamed": 1, "visible": True}

View File

@ -152,7 +152,7 @@ class EditCommunityView(QObject):
def logo(self, kwargs: dict):
self._add_logo_button.click()
OpenFileDialog().wait_until_appears().open_file(kwargs['fp'])
PictureEditPopup().wait_until_appears().make_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
PictureEditPopup().wait_until_appears().set_zoom_shift_for_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
@property
@allure.step('Get community banner')
@ -163,7 +163,7 @@ class EditCommunityView(QObject):
def banner(self, kwargs: dict):
self._add_banner_button.click()
OpenFileDialog().wait_until_appears().open_file(kwargs['fp'])
PictureEditPopup().wait_until_appears().make_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
PictureEditPopup().wait_until_appears().set_zoom_shift_for_picture(kwargs.get('zoom', None), kwargs.get('shift', None))
@allure.step('Set community logo without file upload dialog')
def set_logo_without_file_upload_dialog(self, path):
@ -233,9 +233,9 @@ class EditCommunityView(QObject):
@allure.step('Edit community')
def edit(self, kwargs):
self.set_logo_without_file_upload_dialog(kwargs['logo']['fp'])
PictureEditPopup().make_picture(None, None)
PictureEditPopup().set_zoom_shift_for_picture(None, None)
self.set_banner_without_file_upload_dialog(kwargs['banner']['fp'])
PictureEditPopup().make_picture(None, None)
PictureEditPopup().set_zoom_shift_for_picture(None, None)
for key in list(kwargs):
setattr(self, key, kwargs.get(key))
self._save_changes_button.click()

View File

@ -268,6 +268,7 @@ class YourProfileView(OnboardingView):
self._clear_icon = QObject(names.mainWindow_clear_icon_StatusIcon)
self._identicon_ring = QObject(names.mainWindow_IdenticonRing)
self._view_header_title = TextLabel(names.mainWindow_Header_Title)
self._image_crop_workflow = QObject(names.profileImageCropper)
def verify_profile_view_present(self, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC):
driver.waitFor(lambda: self._view_header_title.exists, timeout_msec)
@ -311,7 +312,13 @@ class YourProfileView(OnboardingView):
self._clear_icon.click()
return self
@allure.step('Set user image')
@allure.step('Set profile picture without file upload dialog')
def set_profile_picture(self, path) -> PictureEditPopup:
image_cropper = driver.waitForObjectExists(self._image_crop_workflow.real_name)
image_cropper.cropImage(('file://' + str(path)))
return PictureEditPopup()
@allure.step('Set profile picture with file dialog upload')
def set_user_image(self, fp: SystemPath) -> PictureEditPopup:
allure.attach(name='User image', body=fp.read_bytes(), attachment_type=allure.attachment_type.PNG)
self._upload_picture_button.hover()

View File

@ -10,7 +10,7 @@ from . import marks
import configs.timeouts
from gui.components.onboarding.before_started_popup import BeforeStartedPopUp
from gui.components.onboarding.beta_consent_popup import BetaConsentPopup
from gui.components.picture_edit_popup import shift_image
from gui.components.picture_edit_popup import shift_image, PictureEditPopup
from gui.components.splash_screen import SplashScreen
from gui.screens.onboarding import AllowNotificationsView, WelcomeToStatusView, BiometricsView, KeysView
@ -29,7 +29,7 @@ def keys_screen(main_window) -> KeysView:
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/703421', 'Generate new keys')
@pytest.mark.case(703421)
# @pytest.mark.critical TODO: https://github.com/status-im/status-desktop/issues/13483
@pytest.mark.critical
@pytest.mark.parametrize('user_name, password, user_image, zoom, shift', [
pytest.param(
''.join((random.choice(
@ -59,9 +59,8 @@ def test_generate_new_keys(main_window, keys_screen, user_name: str, password, u
f'Error message {profile_view.get_error_message} is present when it should not'
with step('Click plus button and add user picture'):
if user_image is not None:
profile_picture_popup = profile_view.set_user_image(configs.testpath.TEST_IMAGES / user_image)
profile_picture_popup.make_picture(zoom=zoom, shift=shift)
profile_view.set_profile_picture(configs.testpath.TEST_IMAGES / user_image)
PictureEditPopup().set_zoom_shift_for_picture(zoom=zoom, shift=shift)
# TODO: find a way to verify the picture is there (changed to the custom one)
assert profile_view.get_profile_image is not None, f'Profile picture was not set / applied'
assert profile_view.is_identicon_ring_visible, f'Identicon ring is not present when it should'

View File

@ -17,6 +17,7 @@ from gui.screens.onboarding import BiometricsView, AllowNotificationsView, Welco
pytestmark = marks
@pytest.fixture
def keys_screen(main_window) -> KeysView:
with step('Open Generate new keys view'):
@ -63,4 +64,3 @@ def test_import_seed_phrase(aut: AUT, keys_screen, main_window, user_account, au
user_canvas = main_window.left_panel.open_online_identifier()
profile_popup = user_canvas.open_profile_popup_from_online_identifier()
assert profile_popup.user_name == user_account.name

View File

@ -9,6 +9,8 @@ from gui.components.settings.changes_detected_popup import ChangesDetectedToastM
from gui.main_window import MainWindow
pytestmark = marks
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/703006',
'Set display name, bio and social links')
@pytest.mark.case(703006)