Question: [Python] [unittest] Write Unit Testing of Program below import pickle import time from datetime import datetime class Account: def __init__(self, username=username): self.username = username self.balance

[Python] [unittest] Write Unit Testing of Program below

import pickle import time from datetime import datetime class Account: def __init__(self, username="username"): self.username = username self.balance = 0 self.item_list = [] def addItem(self, item): ##print("is added") self.item_list.append(item) self.updateAccountDatabase() def addManyItem(self, item_list): self.item_list = item_list self.updateAccountDatabase() def getItemList(self): return self.item_list def getItemList_interval(self, fromDate, toDate): account_item_list = self.getItemList() account_interval_list = [] for i in range(len(account_item_list)): if(datetime(int((account_item_list[i].getItemDate())[8:10]), int((account_item_list[i].getItemDate())[3:5]), int((account_item_list[i].getItemDate())[0:2])) >= datetime(int(fromDate[8:10]), int(fromDate[3:5]), int(fromDate[0:2])) and datetime(int((account_item_list[i].getItemDate())[8:10]), int((account_item_list[i].getItemDate())[3:5]), int((account_item_list[i].getItemDate())[0:2])) <= datetime(int(toDate[8:10]), int(toDate[3:5]), int(toDate[0:2]))): account_interval_list.append(account_item_list[i]) return account_interval_list def getDailyItemList(self, date): account_item_list = self.getItemList() item_list = [] for i in range(len(account_item_list)): if(account_item_list[i].getItemDate() == date): item_list.append(account_item_list[i]) balance = 0 for i in range(len(item_list)): balance += item_list[i].getTotalPrice() item_list.append(balance) return item_list def getTotalBalance(self): for i in range(len(self.item_list)): self.balance = self.balance + \ (float(self.item_list[i].getItemPrice()) * int(self.item_list[i].getItemQuantity())) return self.balance def getFullItemList(self): directory = "Data/UserAccount/" with open(directory + self.username + "AccountData.pkl", "rb") as f: UserAccountItemList = [] while True: try: itemObject = pickle.load(f) except EOFError: break if(itemObject.getItemName() != "beginBalance"): UserAccountItemList.append(itemObject) self.item_list = UserAccountItemList + self.item_list self.item_list.sort( key=lambda x: time.strptime( x.getItemDate(), "%d/%m/%Y")) def getIncomeSpendingData(self, item_list_interval): data_list = [] date = "" spendingBalance = 0 incomeBalance = 0 for i in range(len(item_list_interval)): if(date != item_list_interval[i].getItemDate()): data_list.append((date, spendingBalance, incomeBalance)) date = item_list_interval[i].getItemDate() if(item_list_interval[i].getTotalPrice() < 0): spendingBalance = 0 - item_list_interval[i].getTotalPrice() incomeBalance = 0 else: spendingBalance = 0 incomeBalance = item_list_interval[i].getTotalPrice() else: if(item_list_interval[i].getTotalPrice() < 0): spendingBalance -= item_list_interval[i].getTotalPrice() else: incomeBalance += item_list_interval[i].getTotalPrice() if(i == len(item_list_interval) - 1): data_list.append((date, spendingBalance, incomeBalance)) data_list = data_list[1::] return data_list def getCategoryCount(self, item_list_interval): incomeCategory = { '- None -': 0, 'Salary': 0, 'Interest Money': 0, 'Selling': 0, 'Award': 0, 'Gifts': 0, 'etc.': 0} spendingCategory = { '- None -': 0, 'Food & Beverage': 0, 'Bills & Utilities': 0, 'Transportation': 0, 'Shopping': 0, 'Friends & Lover': 0, 'Entertainment': 0, 'Travel': 0, 'Health & Fitness': 0, 'Gift & Donations': 0, 'Family': 0, 'Education': 0, 'Investment': 0, 'Business': 0, 'Insurance': 0, 'Fees & Charges': 0, 'etc.': 0} for i in range(len(item_list_interval)): if(item_list_interval[i].getItemType() == "Spending"): spendingCategory[item_list_interval[i].getItemCategory( )] -= item_list_interval[i].getTotalPrice() elif(item_list_interval[i].getItemType() == "Income"): incomeCategory[item_list_interval[i].getItemCategory( )] += item_list_interval[i].getTotalPrice() categoryCount = [incomeCategory, spendingCategory] return categoryCount def getDailyBalance(self, item_list_interval): data_list = [] date = "" balance = 0 for i in range(len(item_list_interval)): if (date != item_list_interval[i].getItemDate()): data_list.append((date, balance)) date = item_list_interval[i].getItemDate() balance += item_list_interval[i].getTotalPrice() else: balance += item_list_interval[i].getTotalPrice() if (i == len(item_list_interval) - 1): data_list.append((date, balance)) data_list = data_list[1::] return data_list def updateAccountDatabase(self): self.getFullItemList() directory = "Data/UserAccount/" with open(directory + self.username + "AccountData.pkl", "wb") as output: for i in range(len(self.item_list)): pickle.dump(self.item_list[i], output, -1) self.item_list = [] def __str__(self): temp = "" for i in range(len(self.item_list)): temp = temp + self.item_list[i].toString() return temp 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!