def test_get_account_balance(self): bank = Bank() account1 = Account('001', 50) bank.add_account(account1) self.assertEqual(bank.get_account_balance('001'), 50)
def test_add_account(self): bank = Bank() account_1 = Account(001, 50) account_2 = Account(002, 100) bank.add_account(account_1) bank.add_account(account_2) self.assertEqual(len(bank.accounts), 2)
def test_deposit(self): bank = Bank() account_1 = Account(001, 50) bank.add_account(account_1) self.assertEqual(bank.deposit(001, 50), 100) self.assertEqual(bank.deposit(002, 50), 'Account does not exist')
def one_bank(cards): """ 은행 fixture 생성 """ bank1 = Bank("은행1") for k, v in cards.items(): for account, balance in v[1].items(): bank1.add_account(k, v[0], account, balance) return bank1
def test_get_account_balance(self): bank = Bank() account_1 = Account(001, 50) bank.add_account(account_1) self.assertEqual(bank.get_account_balance(001), 50) self.assertEqual(bank.get_account_balance(002), 'Account does not exist')
def test_withdraw(self): bank = Bank() account_1 = Account(001, 50) bank.add_account(account_1) self.assertEqual(bank.withdraw(001, 50), 0) self.assertEqual(bank.withdraw(001, 100), 'Insufficient balance') self.assertEqual(bank.withdraw(002, 50), 'Account does not exist')
def test_add_account(self): bank = Bank() account1 = Account('001', 20) account2 = Account('002', 80) bank.add_account(account1) bank.add_account(account2) self.assertEqual(len(bank.accounts), 2)
def test_bug_fix(self): """ Testing to see if student has addressed security flaw. """ # stdout = sys.stdout # sys.stdout = io.StringIO() print("\n\nTESTING SECURITY BUG SCENARIO:") hsbc = Bank("HSBC") hsbc.add_account("Han") hsbc.deposit("Han", 200) hsbc.withdraw("Han", 100) test0 = hsbc.withdraw("Han", -1000) test1 = hsbc.check_balance("Han") print("SECURITY BUG SCENARIO COMPLETE. TEST RESULT:") self.assertFalse(test0) self.assertEqual(test1, 100)
def test_transfer0(self): """ Test simple transfer that should be successful """ # stdout = sys.stdout # sys.stdout = io.StringIO() print("\n\nTESTING TRANSFER SCENARIO 0:") hsbc = Bank("HSBC") hsbc.add_account("Han") hsbc.deposit("Han", 200) hsbc.add_account("Proctor") test0 = hsbc.transfer("Han", "Proctor", 100) test1 = hsbc.check_balance("Han") test2 = hsbc.check_balance("Proctor") print("TRANSFER SCENARIO 0 COMPLETE. TEST RESULT:") self.assertTrue(test0) self.assertEqual(test1, 100) self.assertEqual(test2, 100)
def test_transfer4(self): """ Edge cases: transfer to same account (either return true or false but should not increment account) """ # stdout = sys.stdout # sys.stdout = io.StringIO() print("\n\nTESTING TRANSFER SCENARIO 4:") hsbc = Bank("HSBC") hsbc.add_account("Han") hsbc.deposit("Han", 200) hsbc.add_account("Proctor") test0 = hsbc.transfer("Han", "Proctor", 100) test1 = hsbc.check_balance("Han") test2 = hsbc.check_balance("Proctor") hsbc.transfer("Han", "Han", 100) test3 = hsbc.check_balance("Han") print("TRANSFER SCENARIO 4 COMPLETE. TEST RESULT:") self.assertTrue(test0) self.assertEqual(test1, 100) self.assertEqual(test2, 100) self.assertEqual(test3, 100)
def test_transfer2(self): """ Test transfer that should be unsuccessful due to non-existent transfer_from_acct """ # stdout = sys.stdout # sys.stdout = io.StringIO() print("\n\nTESTING TRANSFER SCENARIO 2:") hsbc = Bank("HSBC") hsbc.add_account("Han") hsbc.deposit("Han", 200) hsbc.add_account("Proctor") test0 = hsbc.transfer("Han", "Proctor", 100) test1 = hsbc.check_balance("Han") test2 = hsbc.check_balance("Proctor") test3 = hsbc.transfer("nope", "Proctor", 100) test4 = hsbc.check_balance("Han") test5 = hsbc.check_balance("Proctor") print("TRANSFER SCENARIO 2 COMPLETE. TEST RESULT:") self.assertTrue(test0) self.assertEqual(test1, 100) self.assertEqual(test2, 100) self.assertFalse(test3) self.assertEqual(test4, 100) self.assertEqual(test5, 100)
#!/usr/bin/env python """Figgis Diggis""" from flask import Flask, render_template, request from bank import Bank from account import Account APP = Flask(__name__, template_folder='templates') BANK = Bank() @APP.route('/') def hello_world(): """Figgis diggis""" account_number = request.args.get('account_number') balance = BANK.get_account_balance(account_number) return render_template('index.html', balance=balance) if __name__ == '__main__': import cProfile ACCOUNT = Account('1111', 50) BANK.add_account(ACCOUNT) cProfile.run('APP.run(debug=True)', sort='time')
"""An example of how banks and accounts can work together to create an ecomony. In this example, we only need to import Bank, because the Bank will take care of its own accounts. (If you have ever had a bank account, you know that you can't interact with the account directly. Transactions go through the bank.) """ from bank import Bank hsbc = Bank("HSBC") sc = Bank("Standard Chartered") hsbc.add_account("Wolf") hsbc.add_account("Han") hsbc.deposit("Wolf", 110) hsbc.check_balance("Han") hsbc.deposit("Han", 240) for amount in range(10): if (hsbc.withdraw("Han", amount*10)): hsbc.deposit("Wolf", amount*10)
from flask import Flask, render_template, request from bank import Bank from account import Account app = Flask(__name__) BANK = Bank() @app.route("/") def hello_world(): account_number = request.args.get("account_number") balance = BANK.get_account_balance(account_number) return render_template("index.html", balance=balance) def main(): account = Account("1111", 50) # pylint: disable=C0103 BANK.add_account(account) app.run(debug=True) if __name__ == "__main__": account = Account("1111", 50) BANK.add_account(account) app.run(debug=True)
from flask import Flask, render_template, request from bank import Bank from account import Account app = Flask(__name__) BANK = Bank() @app.route('/') def hello_world(): account_number = request.args.get('account_number') balance = BANK.get_account_balance(account_number) return render_template('index.html', balance=balance) def main(): account = Account('1111', 50) #pylint: disable=C0103 BANK.add_account(account) app.run(debug=True) if __name__ == '__main__': import cProfile account = Account('1111', 50) BANK.add_account(account) cProfile.run('app.run(debug=True)')
class ClientThread(threading.Thread): def __init__(self, clientAddress, clientsocket): threading.Thread.__init__(self) self.csocket = clientsocket print("nova conexao: ", clientAddress) self.sinc = threading.Lock() self.bank = Bank() def run(self): print("Connected de :", clientAddress) print('run') ''' DESCRIPTION: função criada para enviar e receber dados entre o cliente e servidor ''' test = 1 while (test != 0): dados = self.csocket.recv(1024).decode() message = dados.split('π∛') if message[0] == 'add_client': c = Client(message[1], message[2], message[3]) if self.bank.get_client(message[3]) is False: a = Account(message[4], c, message[5], message[6], '1000') if self.bank.get_account(message[4]) is False: self.bank.add_client(c) self.bank.add_account(a) print('Conta Criada Com Sucesso!') self.csocket.send('True'.encode()) else: print('Número de Conta Em Uso!') self.csocket.send('False1'.encode()) else: print('CPF Em Uso!') self.csocket.send('False2'.encode()) elif message[0] == 'authenticated': # Logar authenticated = self.bank.login(message[1], message[2]) if authenticated is True: print('Login Realizado Sucesso') self.csocket.send('True'.encode()) else: print('Login Não Realizado!') self.csocket.send('False'.encode()) elif message[ 0] == 'menuName': # Mostrar o nome do usuario na tela de menu self.csocket.send(str(self.bank.nameAndSurname()).encode()) elif message[ 0] == 'menuBalance': # Mostrar o saldo do usuario na tela de menu self.csocket.send(str(self.bank.menuBalance()).encode()) elif message[0] == 'withdraw': # Sacar self.sinc.acquire() account = self.bank.withdraw(message[1]) if account == 'True': self.csocket.send('True'.encode()) self.sinc.release() elif account == 'Negativo': self.csocket.send('Negativo'.encode()) self.sinc.release() elif account == 'Indisponível': self.csocket.send('Indisponível'.encode()) self.sinc.release() elif message[0] == 'deposit': # Depositar self.sinc.acquire() account = self.bank.deposit(message[1]) if account == 'True': self.csocket.send('True'.encode()) self.sinc.release() elif account == 'Negativo': self.csocket.send('Negativo'.encode()) self.sinc.release() elif message[0] == 'transfer': # Transferir self.sinc.acquire() account = self.bank.transfer(message[1], message[2]) if account == 'True': self.csocket.send('True'.encode()) self.sinc.release() elif account == 'False': self.csocket.send('False'.encode()) self.sinc.release() elif account == 'Negativo': self.csocket.send('Negativo'.encode()) self.sinc.release() elif account == 'Inválido': self.csocket.send('Inválido'.encode()) self.sinc.release() elif message[0] == 'extract': # Extrato # account = self.bank.get_account_2() # extracts = account.extract.display_extract() # print('Tirou Extrato!') self.csocket.send(''.encode()) elif message[0] == 'backLogin': self.bank.sairApp() self.csocket.send('True'.encode()) def servClose(self): ''' DESCRIPTION: Utilizado para fechar o servidor ''' self.servSocket.close() print("Server finalizado.")