def test_update_reinvest_dividends(self): holding = Holding('IL', 'Illuminati', 'BY', 120, 10, 'USD', reinvest_dividends=True) portfolio = Portfolio([holding], self.CONVERTER) sut = CashDividendAction(1.50, 'USD') sut.update(holding, portfolio) self.assertEqual(8.50, holding.price) self.assertEqual(120*(1+1.5/8.5), holding.shares) self.assertEqual(0, portfolio.cash_value)
def test_update_reinvest_dividends_another_currency(self): holding = Holding('IL', 'Illuminati', 'BY', 120, 10, 'USD', reinvest_dividends=True) portfolio = Portfolio([holding], self.CONVERTER) sut = CashDividendAction(1.50, 'CAD') distribution = 1.50 * self.CONVERTER.CONVERSION_TABLE[('CAD', 'USD')] new_share_price = 10 - distribution sut.update(holding, portfolio) self.assertEqual(new_share_price, holding.price) self.assertEqual(120*(1+distribution/new_share_price), holding.shares) self.assertEqual(0, portfolio.cash_value)