def get_transaction_modal_details(self):
     """ Return details of displayed transaction in modal
     Data is returned as a 'Transaction' object """
     transaction_modal_description = BaseElement(self.driver, locators.TRANSACTION_MODAL_DESCRIPTION)
     transaction_modal_amount = BaseElement(self.driver, locators.TRANSACTION_MODAL_AMOUNT)
     transaction_modal_date = BaseElement(self.driver, locators.TRANSACTION_MODAL_DATE)
     transaction_modal_details = \
         {'description': transaction_modal_description.get_text(),
          'amount': utils.remove_whitespace_from_string(transaction_modal_amount.get_text()),
          'date': transaction_modal_date.get_text()}
     return transaction_modal_details
Exemple #2
0
 def get_error_message_status(self):
     """ Return Login error message """
     used_email_partial_text = "already created"
     invalid_credentials_partial_text = "don’t recognize the email/password"
     locked_user_partial_text = "currently locked"
     error_message = BaseElement(self.driver, locators.ERROR_MESSAGE)
     if used_email_partial_text in error_message.get_text():
         return LoginStatus.EMAIL_ALREADY_EXITS
     elif invalid_credentials_partial_text in error_message.get_text():
         return LoginStatus.INVALID_CREDENTIALS
     elif locked_user_partial_text in error_message.get_text():
         return LoginStatus.LOCKED_USER
     else:
         return LoginStatus.UNKNOWN_PROMPT
 def get_save_balance(self):
     """ Return the displayed balance of the user's Aspiration Save Account """
     BaseElement(self.driver, locators.SAVE_ACCOUNT_TEXT).wait_until_displayed()
     # Manually scrolling up is necessary because even seeing the label might still hide amount
     self.touch_scroll_up()
     element = BaseElement(self.driver, locators.SAVE_BALANCE_TEXT)
     return Decimal(re.sub(r'[^\d.]', '', element.get_text()))
 def get_pwif_amount(self):
     """ Return users current PWIF amount """
     BaseElement(self.driver, locators.FEE_SETTINGS_TAB).click()
     fee_amount_text = BaseElement(self.driver, locators.FEE_AMOUNT)
     fee_amount_text.wait_until_displayed()
     pwif_amount = utils.decimal_from_string(fee_amount_text.get_text())
     return pwif_amount
 def get_opening_deposit_amount(self):
     """ Return the amount of the Opening Deposit transfer"""
     transfer_amount = BaseElement(self.driver,
                                   locators.FIRST_HISTORY_TRANSFER_AMOUNT)
     if transfer_amount.displayed(5):
         opening_deposit = utils.decimal_from_string(
             transfer_amount.get_text())
     else:
         return None
     return opening_deposit
    def get_most_recent_transaction_summary(self):
        """ Return summarized details of most recent transaction, or None if no transactions are displayed
        Data is returned as a 'Transaction' object """

        transaction_description = BaseElement(self.driver, locators.FIRST_TRANSACTION_DESCRIPTION)
        transaction_amount = BaseElement(self.driver, locators.FIRST_TRANSACTION_AMOUNT)
        transaction_running_balance = BaseElement(self.driver, locators.FIRST_TRANSACTION_RUNNING_BALANCE)
        transaction_no_activity = BaseElement(self.driver, locators.TRANSACTION_NO_ACTIVITY_MESSAGE)
        if transaction_description.displayed(5):
            transaction_details = \
                {'description': transaction_description.get_text(),
                 'amount': utils.remove_whitespace_from_string(transaction_amount.get_text()),
                 'balance': transaction_running_balance.get_text()}
        elif transaction_no_activity.displayed(5):
            transaction_details = \
                {'description': transaction_no_activity.get_text(),
                 'amount': None,
                 'balance': None}
        else:
            return None
        return transaction_details
 def get_modal_summary_details(self):
     """ get summary details from receipt modal """
     bank = BaseElement(self.driver,
                        locators.INVESTMENT_ORDER_RECEIPT_MODAL_DESCRIPTION)
     bank.wait_until_displayed()
     modal_details = {
         "bank":
         bank.get_text(),
         "amount":
         BaseElement(
             self.driver,
             locators.INVESTMENT_ORDER_RECEIPT_MODAL_AMOUNT).get_text()
     }
     return modal_details
 def next_scheduled_transfer_summary(self):
     """ Return summarized details of next scheduled transfer, or None if no transfer is scheduled """
     # QA-329 To-Do : Update logic to handle 'no activity' message
     date_caption = BaseElement(self.driver,
                                locators.FIRST_SCHEDULED_TRANSFER_DATE)
     if date_caption.displayed(5):
         transfer_details = {'date': date_caption.get_text()}
     else:
         return None
     # BANK-1683 todo: a method to identify the to, from, and amount fields
     # transfer_details['amount'] = utils.decimal_from_string(BaseElement(self.driver,
     #                                                        locators.FIRST_SCHEDULED_TRANSFER_AMOUNT).get_text())
     # transfer_details['from'] =
     # transfer_details['to'] =
     return transfer_details
Exemple #9
0
 def return_to_dashboard(self):
     """ Navigate back to the customer dashboard """
     location = BaseElement(self.driver, locators.LOCATION_TEXT)
     # Begin navigation if we are not already at the dashboard
     if location.get_text() != 'Account Summary':
         drawer_button = BaseElement(self.driver, locators.DRAWER_BUTTON)
         if drawer_button.not_displayed():
             # If the drawer button isn't displayed, then we need to click the back-button to make it appear
             back_button = BaseElement(self.driver,
                                       locators.NAVIGATE_UP_BUTTON)
             if back_button.displayed(5):
                 back_button.click()
         drawer_button.click()
         BaseElement(self.driver, locators.SUMMARY_BUTTON).click()
     location.wait_until_displayed()
Exemple #10
0
 def get_product_balance(self, product):
     """ Return the displayed balance of a user's chosen product """
     if product == Products.SPEND:
         product_balance = BaseElement(self.driver,
                                       locators.ASPIRATION_SPEND_BALANCE)
     elif product == Products.SAVE:
         product_balance = BaseElement(self.driver,
                                       locators.ASPIRATION_SAVE_BALANCE)
     elif product == Products.REDWOOD:
         product_balance = BaseElement(self.driver,
                                       locators.ASPIRATION_REDWOOD_BALANCE)
     # elif product == Products.FLAGSHIP:
     #     product_balance = BaseElement(self.driver, locators.ASPIRATION_FLAGSHIP_BALANCE)
     else:
         raise ValueError(f"'{product}' is not a valid product")
     return utils.decimal_from_string(product_balance.get_text())