def test_balance_sub_exception2(self): b = Balance() b.set(100) try: b.sub(101) except BalanceException as e: self.assertEquals("Value invalid for function", e.message)
def test_balance_sub(self): b = Balance() b.add(10.0) b.sub(5.0) self.assertEquals(b.getBalance(), 5.0)
def test_balance_sub_exception1(self): b = Balance() try: b.sub(-1.0) except BalanceException as e: self.assertEquals("Value invalid for function", e.message)
class Portfolio: def __init__(self, user): self.__balance = Balance() self.__stocks = {} self.__user = user # self.__portfolio = PortfolioModel.objects.get(user=self.__user) def getStocks(self): return self.__stocks def getHistory(self): ''' I have NO idea what we plan on doing here ''' pass def getTotalValue(self): value = 0 for st in self.__stocks: value += (self.__stocks[st][0] * st.getPrice()) return value + self.__balance.getBalance() def getStockQuantity(self, stock): if stock.getSymbol() not in self.__stocks: raise StockException return self.__stocks[stock.getSymbol()][0] def buy(self, stock, quantity): ''' this will handle the balance exceptions ''' self.__balance.sub(stock.getPrice() * quantity) ''' store stock in dict as tuple of quantity and price ( price can be used for history/gain? ) ''' self.__stocks[stock.getSymbol()] = (quantity, stock.getPrice()) def sell(self, stock, quantity): if stock.getSymbol() not in self.__stocks: raise StockException if self.__stocks[stock.getSymbol()][0] < quantity: raise StockException self.__balance.add(stock.getPrice() * quantity) self.__stocks[stock.getSymbol()][0] -= quantity def getPortfolioHandler(self): pass ''' do we need these ? ''' def addStock(self, stock): pass def removeStock(self): pass