-
Notifications
You must be signed in to change notification settings - Fork 15
/
tests_bank.py
30 lines (24 loc) · 1.16 KB
/
tests_bank.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from virtualBankLimited import BankAccount
from Exceptions import InternalDepositException, WithdrawlException, BalanceRetrievealException
import pytest
import coverage
# Runs before every test, creating a BankAccount object with the username 'name' and balance 100.
@pytest.fixture(autouse=True)
def bank_account():
return BankAccount(username= 'name', balance=100)
def test_view_balance_success(bank_account):
assert bank_account.view_balance() == 100
def test_deposit_success(bank_account):
bank = BankAccount(username= 'name', balance=100)
assert bank_account.deposit(100) == 200.0
def test_withdraw_success(bank_account):
bank = BankAccount(username= 'name', balance=100)
assert bank_account.withdraw(50) == 50.0
def test_deposit_throws(bank_account):
bank = BankAccount(username= 'name', balance=100)
with pytest.raises(InternalDepositException):
bank_account.deposit(-30)
def test_withdraw_throws(bank_account):
bank = BankAccount(username= 'name', balance=100)
with pytest.raises(WithdrawlException):
bank_account.withdraw(500)