def test_get_rate(self): rf = RateFrame(self.ref_date) with patch('requests.get', FakeRequest): rf.retrieve() rate = rf.get_rate('EUR') self.assertEqual(rate['currency_code'], 'EUR') self.assertEqual(rate['unit_value'], 1) self.assertEqual(rate['buying_rate'], Decimal('7.467601'))
def test_retrieve_date_fallback(self): # we mock requests.get to test condition when data for requested date is # not available (404, r.ok==False). If that happens RateFrame object # then iterates backwards throught dates until it successfully # retrieves some data (which for this test is faked as 2 days before # requested date) date = self.ref_date + datetime.timedelta(2) rf = RateFrame(date) with patch('requests.get', FakeRequest): rf.retrieve() rates = rf.data.rates rate = rates[0] self.assertEqual(len(rates), rf.data.header['items']) self.assertEqual(rf.date, self.ref_date) self.assertEqual(rate['currency_code'], 'AUD') self.assertEqual(rate['unit_value'], 1) self.assertEqual(rate['buying_rate'], Decimal('5.101517'))
def test_full_url(self): rf = RateFrame(self.ref_date) url = 'http://www.hnb.hr/tecajn/f300713.dat' self.assertEqual(rf.full_url(self.ref_date), url)