From 4f1e9723d00f72410bf2a962b5d881380e435ed6 Mon Sep 17 00:00:00 2001 From: Churikova Tetiana Date: Wed, 27 Apr 2022 12:53:17 +0200 Subject: [PATCH] e2e: queue by groups --- .../critical/wallet_and_tx/test_wallet.py | 91 +++++++----------- test/appium/views/base_view.py | 4 +- .../elements_templates/collectible_pic.png | Bin 9661 -> 15282 bytes 3 files changed, 38 insertions(+), 57 deletions(-) diff --git a/test/appium/tests/critical/wallet_and_tx/test_wallet.py b/test/appium/tests/critical/wallet_and_tx/test_wallet.py index 80f4675bdb..7f0cd34eea 100644 --- a/test/appium/tests/critical/wallet_and_tx/test_wallet.py +++ b/test/appium/tests/critical/wallet_and_tx/test_wallet.py @@ -252,9 +252,9 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase): self.errors.verify_no_errors() @marks.testrail_id(700762) - # TODO: skipped due to #13016 - def test_wallet_add_account_seed_phrase_collectibles_mainnet_rinkeby(self): + def test_wallet_add_account_seed_phrase_collectibles_rinkeby_set_as_profile_image(self): user = wallet_users['E'] + self.wallet.driver.set_network_connection(6) account_seed_collectibles = self.account_seed_collectibles self.wallet.get_back_to_home_view() if not self.wallet.add_account_button.is_element_displayed(3): @@ -282,64 +282,18 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase): if not account_button.is_element_displayed(): self.wallet.accounts_status_account.swipe_left_on_element() - # self.home.just_fyi('Check that collectibles are not shown on Ropsten') - # account_button.click() - # self.wallet.collectibles_button.click() - # self.wallet.element_by_translation_id("display-collectibles").scroll_and_click() - # if not self.wallet.element_by_translation_id("no-collectibles").is_element_displayed(): - # self.errors.append("Collectibles are shown on Ropsten network!") - - self.wallet.just_fyi('Check collectibles amount in wallet') - profile = self.home.profile_button.click() - profile.switch_network() - profile.wallet_button.click() - if not account_button.is_element_displayed(): - self.wallet.accounts_status_account.swipe_left_on_element() + self.home.just_fyi('Check that collectibles are not shown on Ropsten') account_button.click() self.wallet.collectibles_button.click() self.wallet.element_by_translation_id("display-collectibles").scroll_and_click() - collectible_amount = self.wallet.get_collectibles_amount() - collectible_amount.wait_for_visibility_of_element(30) - if collectible_amount.text != '1': - self.errors.append('Wrong number is shown on CK assets: %s' % collectible_amount.text) - - self.wallet.just_fyi('Check that you can open collectible to view') - collectible_amount.click() - if not self.wallet.nft_asset_button.is_element_displayed(60): - self.driver.fail("Kitty is not shown after opening it from collectibles!") - self.wallet.nft_asset_button.click() - self.wallet.set_collectible_as_profile_photo_button.scroll_and_click() - - self.wallet.just_fyi('Check that you can set collectible as profile photo') - web_view = self.wallet.get_base_web_view() - self.wallet.view_collectible_on_opensea_button.click_until_presence_of_element( - web_view.browser_previous_page_button) - web_view.wait_for_d_aap_to_load() - if not web_view.element_by_text('Princess Gunklater').is_element_displayed(30): - self.errors.append("Collectible can't be opened when tapping 'View on OpenSea' via NFT page") - self.wallet.wallet_button.click() - - self.wallet.just_fyi('Check that collectibles are not shown when sending assets from wallet') - send_transaction = self.wallet.send_transaction_button.click() - send_transaction.select_asset_button.click() - if send_transaction.asset_by_name("CryptoKitties").is_element_displayed(): - self.errors.append('Collectibles can be sent from wallet') - self.wallet.close_send_transaction_view_button.double_click() - - self.wallet.just_fyi('Check "Open in OpenSea" (that user is signed in)') - self.wallet.element_by_translation_id("check-on-opensea").click_until_presence_of_element( - web_view.browser_previous_page_button) - web_view.wait_for_d_aap_to_load(10) - self.wallet.element_by_text('e2ecryptokitty').wait_for_element(60) - - self.wallet.just_fyi("Check that custom image from collectible is set as profile photo") - self.wallet.profile_button.double_click() - if not profile.profile_picture.is_element_image_similar_to_template('collectible_pic.png'): - self.errors.append("Collectible image is not set as profile image") + if not self.wallet.element_by_translation_id("no-collectibles").is_element_displayed(): + self.errors.append("Collectibles are shown on Ropsten network!") self.home.just_fyi('Check that collectibles amount is shown on Rinkeby') profile = self.home.profile_button.click() profile.switch_network('Rinkeby with upstream RPC') + # Additional login as a workaround for issue when collectibles are not shown on test network + self.wallet.reopen_app() profile = self.home.profile_button.click() profile.wallet_button.click() if not account_button.is_element_displayed(): @@ -349,13 +303,40 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase): self.wallet.transaction_history_button.click() self.wallet.collectibles_button.click() self.wallet.swipe_up() - if self.wallet.element_by_translation_id("display-collectibles").is_element_displayed: - self.wallet.element_by_translation_id("display-collectibles").click() for asset in user['collectibles']: self.wallet.get_collectibles_amount(asset).scroll_to_element() if self.wallet.get_collectibles_amount(asset).text != user['collectibles'][asset]: self.errors.append( '%s %s is not shown in Collectibles for Rinkeby!' % (user['collectibles'][asset], asset)) + + self.wallet.just_fyi('Check that you can open collectible to view') + nft, nft_name = 'Coins & Steel Exclusive Item Skin V2', "Warlock's Arm" + self.wallet.get_collectibles_amount(nft).click() + if not self.wallet.nft_asset_button.is_element_displayed(60): + self.driver.fail("No card is not shown for %s after opening it from collectibles!" % nft) + self.wallet.nft_asset_button.click() + self.wallet.set_collectible_as_profile_photo_button.scroll_and_click() + + self.wallet.just_fyi('Check that you can set collectible as profile photo') + web_view = self.wallet.get_base_web_view() + self.wallet.view_collectible_on_opensea_button.click_until_presence_of_element( + web_view.browser_previous_page_button) + web_view.wait_for_d_aap_to_load() + if not web_view.element_by_text(nft_name).is_element_displayed(30): + self.errors.append("Collectible can't be opened when tapping 'View on OpenSea' via NFT page") + self.wallet.wallet_button.click() + + self.wallet.just_fyi('Check that collectibles are not shown when sending assets from wallet') + send_transaction = self.wallet.send_transaction_button.click() + send_transaction.select_asset_button.click() + if send_transaction.asset_by_name(nft).is_element_displayed(): + self.errors.append('Collectibles can be sent from wallet') + self.wallet.close_send_transaction_view_button.double_click() + + self.wallet.just_fyi("Check that custom image from collectible is set as profile photo") + self.wallet.profile_button.double_click() + if not profile.profile_picture.is_element_image_similar_to_template('collectible_pic.png'): + self.errors.append("Collectible image is not set as profile image") self.errors.verify_no_errors() @marks.testrail_id(700766) diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index 0823561874..2cbec4eaf0 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -448,10 +448,10 @@ class BaseView(object): def switch_to_mobile(self, before_login=False, sync=False): self.driver.info("Turning on mobile data, syncing is %s" % str(sync)) + from views.home_view import HomeView + home = HomeView(self.driver) self.driver.set_network_connection(4) if before_login is False: - from views.home_view import HomeView - home = HomeView(self.driver) if sync is True: home.continue_syncing_button.wait_and_click() else: diff --git a/test/appium/views/elements_templates/collectible_pic.png b/test/appium/views/elements_templates/collectible_pic.png index ad88450f5e90344cd8fc4b4cfec7379b5a7ce497..1e7ec3cde7d8cc88858e67987de15d325ca71a91 100644 GIT binary patch literal 15282 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 literal 9661 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