Writing Reusable and Testable Code
# test_atm.py
# importing withdrawal function from atm.py
import unittest
from atm import withdrawal
class TestATMWithdrawal(unittest.TestCase):
def test_insufficient_funds(self):
message, new_balance = withdrawal(100,150)
self.assertEqual(message, "Insufficient funds")
self.assertEqual(new_balance, 100)
def test_invalid_amount(self):
message, new_balance = withdrawal(100,-20)
self.assertEqual(message, "Invalid amount")
self.assertEqual(new_balance, 100)
def test_successful_transaction(self):
message, new_balance = withdrawal(100,50)
self.assertEqual(message, "Transaction successful")
self.assertEqual(new_balance, 50)
if __name__ == "__main__":
unittest.main()Last updated