Ejemplo n.º 1
0
def test_print_empty_balance(capsys, mock_statement):
    mock_statement.format_transactions.return_value = "date || credit || debit || balance"
    account = Account(mock_statement)
    account.print_statement()
    out, err = capsys.readouterr()

    assert out == "date || credit || debit || balance\n"
Ejemplo n.º 2
0
def test_feature_print_empty_balance(capsys):
    account = Account()
    account.print_statement()
    out, err = capsys.readouterr()

    assert out == "date || credit || debit || balance\n"
    assert err == ""
Ejemplo n.º 3
0
def test_feature_print_balance_after_two_deposits_and_one_withdraw(capsys):
    date = datetime.now().strftime("%m/%d/%Y")
    account = Account()
    account.deposit(1000)
    account.deposit(2000)
    account.withdraw(500)
    account.print_statement()
    out, err = capsys.readouterr()
    transaction1 = f"{date} || 1000.00 || || 1000.00"
    transaction2 = f"{date} || 2000.00 || || 3000.00"
    transaction3 = f"{date} || || 500.00 || 2500.00"

    assert out == f"date || credit || debit || balance\n{transaction3}\n{transaction2}\n{transaction1}\n"
    assert err == ""
    def test_user_can_print_account_statement(self):
        """
        Integration statement output
        date       || credit  || debit   || balance
        14/01/2012 ||         || 200.00  || 0.00   
        20/02/2015 || 50.55   ||         || 200.00 
        21/02/2012 ||         || 3000.00 || 149.45 
        01/03/2015 || 3.50    ||         || 3149.45
        11/01/2016 || 10.20   ||         || 3145.95
        """

        printer = Printer()
        account = Account(Transaction, printer)

        account.deposit(200)
        account.withdraw(50.55)
        account.deposit(3000)
        account.withdraw(3.5)
        account.withdraw(10.20)

        statement = ("date       || credit  || debit   || balance"
                     "\n" + datetime.now().strftime("%d/%m/%Y") +
                     " ||         || 200.00  || 0.00   "
                     "\n" + datetime.now().strftime("%d/%m/%Y") +
                     " || 50.55   ||         || 200.00 "
                     "\n" + datetime.now().strftime("%d/%m/%Y") +
                     " ||         || 3000.00 || 149.45 "
                     "\n" + datetime.now().strftime("%d/%m/%Y") +
                     " || 3.50    ||         || 3149.45"
                     "\n" + datetime.now().strftime("%d/%m/%Y") +
                     " || 10.20   ||         || 3145.95")

        self.assertEqual(account.print_statement(), statement)