import allure import configs from gui.components.authenticate_popup import AuthenticatePopup from gui.elements.button import Button from gui.elements.object import QObject from gui.objects_map import names class SignTransactionPopup(QObject): def __init__(self): super(SignTransactionPopup, self).__init__() self._sign_transaction_button = Button(names.sign_transaction_StatusButton) self._cancel_button = Button(names.cancel_transaction_StatusButton) self._fee_row = QObject(names.o_FeeRow) self._fee_total_row = QObject(names.feeTotalRow_FeeRow) @property @allure.step('Get fee title') def get_fee_title(self) -> str: return str(self._fee_row.object.title) @property @allure.step('Get fee total value') def get_fee_total_value(self) -> str: return str(self._fee_total_row.object.feeText) @allure.step('Wait until appears {0}') def wait_until_appears(self, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC): self._sign_transaction_button.wait_until_appears(timeout_msec) return self @allure.step('Wait until hidden {0}') def wait_until_hidden(self, timeout_msec: int = configs.timeouts.UI_LOAD_TIMEOUT_MSEC): self._sign_transaction_button.wait_until_hidden() @allure.step('Sign transaction') def sign_transaction(self, user_password): self._sign_transaction_button.click() self.wait_until_hidden() AuthenticatePopup().wait_until_appears().authenticate(user_password)