status-react/test/appium/tests/atomic/account_management/test_wallet.py

95 lines
4.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pytest
from tests import marks, transaction_users
from tests.base_test_case import SingleDeviceTestCase
from views.sign_in_view import SignInView
from views.web_views.base_web_view import BaseWebView
@marks.all
@marks.account
class TestWallet(SingleDeviceTestCase):
@marks.testrail_id(3698)
def test_wallet_set_up(self):
sign_in = SignInView(self.driver)
sign_in.create_user()
wallet = sign_in.wallet_button.click()
text = 'Simple and secure cryptocurrency wallet'
if not wallet.element_by_text(text).is_element_displayed():
self.errors.append("'%s' is not displayed" % text)
wallet.set_up_button.click()
text = ('This is your personal transaction phrase that youll use everytime you make a transaction. '
'Make sure to write it down on a piece of paper, store it somewhere, '
'and only confirm transactions when you see these three words.')
if not wallet.element_by_text(text).is_element_displayed():
self.errors.append("'%s' text is not displayed" % text)
phrase_length = len(wallet.sign_in_phrase.list)
if phrase_length != 3:
self.errors.append('Transaction phrase length is %s' % phrase_length)
wallet.done_button.click()
for text in ['Wrote it down?', 'You wont be able to see your 3-word transaction phrase again after this.']:
if not wallet.element_by_text(text).is_element_displayed():
self.errors.append("'%s' text is not displayed" % text)
wallet.yes_button.click()
for element in [wallet.send_transaction_button, wallet.receive_transaction_button,
wallet.transaction_history_button]:
if not element.is_element_displayed():
self.errors.append('%s button is not shown after wallet setup' % element.name)
self.verify_no_errors()
@marks.testrail_id(1449)
def test_open_transaction_on_etherscan(self):
user = transaction_users['A_USER']
sign_in_view = SignInView(self.driver)
home_view = sign_in_view.recover_access(user['passphrase'], user['password'])
wallet_view = home_view.wallet_button.click()
wallet_view.set_up_wallet()
transactions_view = wallet_view.transaction_history_button.click()
transaction_details = transactions_view.transactions_table.get_first_transaction().click()
transaction_hash = transaction_details.get_transaction_hash()
transaction_details.options_button.click()
transaction_details.open_transaction_on_etherscan_button.click()
base_web_view = BaseWebView(self.driver)
base_web_view.web_view_browser.click()
base_web_view.always_button.click()
base_web_view.find_text_part(transaction_hash)
@marks.testrail_id(1450)
def test_copy_transaction_hash(self):
user = transaction_users['A_USER']
sign_in_view = SignInView(self.driver)
home_view = sign_in_view.recover_access(user['passphrase'], user['password'])
wallet_view = home_view.wallet_button.click()
wallet_view.set_up_wallet()
transactions_view = wallet_view.transaction_history_button.click()
transaction_details = transactions_view.transactions_table.get_first_transaction().click()
transaction_hash = transaction_details.get_transaction_hash()
transaction_details.options_button.click()
transaction_details.copy_transaction_hash_button.click()
transaction_details.get_back_to_home_view()
wallet_view.home_button.click()
chat_view = home_view.get_chat_with_user('user').click()
chat_view.chat_message_input.paste_text_from_clipboard()
if chat_view.chat_message_input.text != transaction_hash:
pytest.fail('Transaction hash was not copied')
@marks.testrail_id(3713)
def test_manage_assets(self):
sign_in = SignInView(self.driver)
sign_in.create_user()
wallet = sign_in.wallet_button.click()
wallet.set_up_wallet()
wallet.options_button.click()
wallet.manage_assets_button.click()
select_asset = 'MDS'
deselect_asset = 'STT'
wallet.asset_checkbox_by_name(select_asset).click()
wallet.asset_checkbox_by_name(deselect_asset).click()
wallet.done_button.click()
if not wallet.asset_by_name(select_asset).is_element_displayed():
self.errors.append('%s asset is not shown in wallet' % select_asset)
if wallet.asset_by_name(deselect_asset).is_element_displayed():
self.errors.append('%s asset is shown in wallet but was deselected' % deselect_asset)
self.verify_no_errors()