Пример #1
0
    def test_get_account_balance(self):
        bank = Bank()

        account1 = Account('001', 50)
        bank.add_account(account1)

        self.assertEqual(bank.get_account_balance('001'), 50)
Пример #2
0
    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)
Пример #3
0
	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')
Пример #4
0
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
Пример #5
0
	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')
Пример #6
0
	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')
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
 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)
Пример #10
0
 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)
Пример #11
0
 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)
Пример #12
0
 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)
Пример #13
0
#!/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')
Пример #14
0
"""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)
Пример #15
0
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)
Пример #16
0
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)')
Пример #17
0
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.")