def test_get_latest_price_SFund(self): response = MockResponse(textwrap.dedent(CURRENT_DATA)) with mock.patch('requests.get', return_value=response): srcprice = tsp.Source().get_latest_price('SFund') self.assertTrue(isinstance(srcprice.price, Decimal)) self.assertEqual(D('55.2910'), srcprice.price) timezone = datetime.timezone(datetime.timedelta(hours=-4), 'America/New_York') self.assertEqual(datetime.datetime(2020, 7, 15, 16, 0, 0, tzinfo=timezone), srcprice.time) self.assertEqual('USD', srcprice.quote_currency)
def test_get_historical_price(self): response = MockResponse(textwrap.dedent(HISTORIC_DATA)) with mock.patch('requests.get', return_value=response): srcprice = tsp.Source().get_historical_price('CFund', time=datetime.datetime(2020, 6, 19)) self.assertTrue(isinstance(srcprice.price, Decimal)) self.assertEqual(D('45.7171'), srcprice.price) timezone = datetime.timezone(datetime.timedelta(hours=-4), 'America/New_York') self.assertEqual(datetime.datetime(2020, 6, 19, 16, 0, 0, tzinfo=timezone), srcprice.time) self.assertEqual('USD', srcprice.quote_currency)
def test_get_historical_price_L2060(self): # This fund did not exist until 01 Jul 2020. Ensuring we get a D(0.0) back. response = MockResponse(textwrap.dedent(HISTORIC_DATA)) with mock.patch('requests.get', return_value=response): srcprice = tsp.Source().get_historical_price('L2060', time=datetime.datetime(2020, 6, 19)) self.assertTrue(isinstance(srcprice.price, Decimal)) self.assertEqual(D('0.0'), srcprice.price) timezone = datetime.timezone(datetime.timedelta(hours=-4), 'America/New_York') self.assertEqual(datetime.datetime(2020, 6, 19, 16, 0, 0, tzinfo=timezone), srcprice.time) self.assertEqual('USD', srcprice.quote_currency)
def test_invalid_fund_historical(self): with self.assertRaises(tsp.TSPError): tsp.Source().get_historical_price('InvalidFund', time=datetime.datetime.now())
def test_invalid_fund_latest(self): with self.assertRaises(tsp.TSPError): tsp.Source().get_latest_price('InvalidFund')