83 lines
2.9 KiB
Python
83 lines
2.9 KiB
Python
import logging
|
|
|
|
from views.base_view import BaseViewObject
|
|
from views.base_element import BaseButton, BaseEditBox, BaseText
|
|
|
|
|
|
class SendButton(BaseButton):
|
|
|
|
def __init__(self, driver):
|
|
super(SendButton, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector("//*[@text='SEND']")
|
|
|
|
|
|
class AmountEditBox(BaseEditBox, BaseButton):
|
|
|
|
def __init__(self, driver):
|
|
super(AmountEditBox, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector("//*[@text='Amount']/..//android.widget.EditText")
|
|
|
|
|
|
class ChooseRecipientButton(BaseButton):
|
|
|
|
def __init__(self, driver):
|
|
super(ChooseRecipientButton, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector("//*[@text='Choose recipient...']")
|
|
|
|
|
|
class TransactionsButton(BaseButton):
|
|
|
|
def __init__(self, driver):
|
|
super(TransactionsButton, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector('(//android.view.ViewGroup[@content-desc="icon"])[4]')
|
|
|
|
def navigate(self):
|
|
from views.transactions import TransactionsViewObject
|
|
return TransactionsViewObject(self.driver)
|
|
|
|
|
|
class ChooseFromContactsButton(BaseButton):
|
|
def __init__(self, driver):
|
|
super(ChooseFromContactsButton, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector("//*[@text='Choose From Contacts']")
|
|
|
|
|
|
class EthAssetText(BaseText):
|
|
def __init__(self, driver):
|
|
super(EthAssetText, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector("//*[@text='ETH']/../android.widget.TextView[1]")
|
|
|
|
|
|
class UsdTotalValueText(BaseText):
|
|
def __init__(self, driver):
|
|
super(UsdTotalValueText, self).__init__(driver)
|
|
self.locator = self.Locator.xpath_selector("//*[@text='USD']/../android.widget.TextView[1]")
|
|
|
|
|
|
class WalletViewObject(BaseViewObject):
|
|
def __init__(self, driver):
|
|
super(WalletViewObject, self).__init__(driver)
|
|
self.driver = driver
|
|
|
|
self.send_button = SendButton(self.driver)
|
|
self.amount_edit_box = AmountEditBox(self.driver)
|
|
self.chose_recipient_button = ChooseRecipientButton(self.driver)
|
|
self.chose_from_contacts_button = ChooseFromContactsButton(self.driver)
|
|
self.transactions_button = TransactionsButton(self.driver)
|
|
self.eth_asset = EthAssetText(self.driver)
|
|
self.usd_total_value = UsdTotalValueText(self.driver)
|
|
|
|
def get_usd_total_value(self):
|
|
return float(self.usd_total_value.text)
|
|
|
|
def get_eth_value(self):
|
|
return float(self.eth_asset.text)
|
|
|
|
def verify_eth_rate(self, expected_rate: int, errors: list):
|
|
usd = self.get_usd_total_value()
|
|
eth = self.get_eth_value()
|
|
current_rate = usd / eth
|
|
if round(current_rate, 2) != expected_rate:
|
|
errors.append('Current ETH rate %s is not equal to the expected %s' % (current_rate, expected_rate))
|
|
logging.info('Current ETH rate %s is ok' % current_rate)
|