def test_cryptonator_uah(self): from_currency = 1000 to_currency = 980 xrate = models.XRate.get(from_currency=from_currency, to_currency=to_currency) updated_before = xrate.updated self.assertEqual(xrate.rate, 1.0) api.update_rate(from_currency, to_currency) xrate = models.XRate.get(from_currency=from_currency, to_currency=to_currency) updated_after = xrate.updated self.assertGreater(xrate.rate, 150000) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, "https://api.cryptonator.com/api/ticker/btc-uah") self.assertIsNotNone(api_log.response_text) self.assertIn('{"base":"BTC","target":"UAH","price":', api_log.response_text)
def test_crypronator_uah(self): from_currency = 1000 to_currency = 980 xrate = models.Rate.get(from_currency=from_currency, to_currency=to_currency) updated_before = xrate.updated self.assertEqual(xrate.rate, 1.0) api.update_rate(1000, 980) xrate = models.Rate.get(from_currency=from_currency, to_currency=to_currency) updated_after = xrate.updated self.assertGreater(xrate.rate, 150000) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog().select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) full_url = CRYPRONATOR_API_URL + "BTC-UAH" self.assertEqual(api_log.request_url, full_url) self.assertIsNotNone(api_log.response_text) self.assertIn('[{"base":"BTC","target":"UAH","price":', api_log.response_text)
def test_privat_mock(self): xrate = models.XRate.get(id=1) updated_before = xrate.updated self.assertEqual(xrate.rate, 1.0) api.update_rate(840, 980) xrate = models.XRate.get(id=1) updated_after = xrate.updated self.assertEqual(xrate.rate, 30) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual( api_log.request_url, "https://api.privatbank.ua/p24api/pubinfo?exchange&json&coursid=11" ) self.assertIsNotNone(api_log.response_text) self.assertEqual('[{"ccy": "USD", "base_ccy": "UAH", "sale": "30.0"}]', api_log.response_text)
def update_rates(): log.info('Job started') xrates = XRate.select() for rate in xrates: try: api.update_rate(rate.from_currency, rate.to_currency) except Exception as ex: log.exception(ex) log.info('Job finished')
def update_rates(): print(f"Job srarted at {datetime.now()}") rates = Rate.select() for rate in rates: try: api.update_rate(rate.from_currency, rate.to_currency) except Exception as ex: print(ex) print(f"Job finished at {datetime.now()}")
def update_rates(): print(f"Start jobs at {datetime.now()}") xrates = XRate.select() for rate in xrates: try: api.update_rate(rate.from_currency, rate.to_currency) except Exception as ex: print(ex) print(f"Finish jobs at {datetime.now()}")
def test_privat_usd(setup_db): xrate = models.XRate.get(id=1) update_before = xrate.updated assert xrate.rate == 1.0 api.update_rate(840, 980) xrate = models.XRate.get(id=1) update_after = xrate.updated assert xrate.rate > 24 assert update_after > update_before api_log = models.ApiLog.select().order_by(models.ApiLog.created.desc()).first() assert api_log is not None assert api_log.request_url == 'https://api.privatbank.ua/p24api/pubinfo?exchange&json&coursid=11' assert api_log.response_text is not None assert '{"ccy":"USD","base_ccy":"UAH",' in api_log.response_text
def test_private_btc(self): xrate = models.XRate.get(from_currency=1000, to_currency=840) updated_before = xrate.updated self.assertEqual(xrate.rate, 1.0) api.update_rate(1000, 840) xrate = models.XRate.get(from_currency=1000, to_currency=840) updated_after = xrate.updated self.assertGreater(xrate.rate, 5000) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by(models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, "https://api.privatbank.ua/p24api/pubinfo?exchange&json&coursid=11")
def test_cbr(setup_db): xrate = models.XRate.get(from_currency=840, to_currency=643) update_before = xrate.updated assert xrate.rate == 3 api.update_rate(840, 643) xrate = models.XRate.get(from_currency=840, to_currency=643) update_after = xrate.updated assert xrate.rate > 60 assert update_after > update_before api_log = models.ApiLog.select().order_by(models.ApiLog.created.desc()).first() assert api_log is not None assert api_log.request_url == 'http://www.cbr.ru/scripts/XML_daily.asp' assert api_log.response_text is not None assert '<NumCode>840</NumCode>' in api_log.response_text
def test_privat_btc(setup_db): xrate = models.XRate.get(from_currency=1000, to_currency=840) update_before = xrate.updated assert xrate.rate == 1.0 api.update_rate(1000, 840) xrate = models.XRate.get(from_currency=1000, to_currency=840) update_after = xrate.updated assert xrate.rate > 5000 assert update_after > update_before api_log = models.ApiLog.select().order_by(models.ApiLog.created.desc()).first() assert api_log is not None assert api_log.request_url == 'https://api.privatbank.ua/p24api/pubinfo?exchange&json&coursid=11'
def test_privat_btc(self): # rate = models.Rate.get(from_currency=1000, to_currency=980) rate = models.Rate.get(id=1) updated_before = rate.updated self.assertEqual(rate.rate, 1.0) # privat_api.update_rates(840, 900) # old api api.update_rate(1000, 840) # new api rate = models.Rate.get(from_currency=1000, to_currency=840) updated_after = rate.updated self.assertGreater(rate.rate, 5000) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, PRIVAT_API_URL)
def test_cbr(self): rate = models.Rate.get(from_currency=840, to_currency=643) updated_before = rate.updated self.assertEqual(rate.rate, 1.0) # cbr_api.update_rates(840, 900) # old api api.update_rate(840, 643) # new api rate = models.Rate.get(from_currency=840, to_currency=643) updated_after = rate.updated self.assertGreater(rate.rate, 70) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, CBR_API_URL) self.assertIsNotNone(api_log.response_text) self.assertIn("<NumCode>840</NumCode>", api_log.response_text)
def test_cbr(self): xrate = models.XRate.get(from_currency=840, to_currency=643) updated_before = xrate.updated self.assertEqual(xrate.rate, 1.0) api.update_rate(840, 643) xrate = models.XRate.get(from_currency=840, to_currency=643) updated_after = xrate.updated self.assertGreater(xrate.rate, 60) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, "http://www.cbr.ru/scripts/XML_daily.asp") self.assertIsNotNone(api_log.response_text) self.assertIn("<NumCode>840</NumCode>", api_log.response_text)
def test_privat_usd(self): rate = models.Rate.get(id=1) updated_before = rate.updated self.assertEqual(rate.rate, 1.0) # privat_api.update_rates(840, 900) # old api api.update_rate(840, 980) # new api rate = models.Rate.get(id=1) updated_after = rate.updated self.assertGreater(rate.rate, 26) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, PRIVAT_API_URL) self.assertIsNotNone(api_log.response_text) self.assertIn('[{"ccy":"USD","base_ccy":"UAH",', api_log.response_text)
def test_cryptonator_rub(setup_db): from_currency = 1000 to_currency = 643 xrate = models.XRate.get(from_currency=from_currency, to_currency=to_currency) update_before = xrate.updated assert xrate.rate == 1.0 api.update_rate(from_currency, to_currency) xrate = models.XRate.get(from_currency=from_currency, to_currency=to_currency) update_after = xrate.updated assert xrate.rate > 500000 assert update_after > update_before api_log = models.ApiLog.select().order_by(models.ApiLog.created.desc()).first() assert api_log is not None assert api_log.request_url == 'https://api.cryptonator.com/api/ticker/btc-rub' assert api_log.response_text is not None assert '{"base":"BTC","target":"RUR","price":' in api_log.response_text
def test_privat_mock(self): rate = models.Rate.get(id=1) updated_before = rate.updated self.assertEqual(rate.rate, 1.0) api.update_rate(840, 980) rate = models.Rate.get(id=1) updated_after = rate.updated self.assertEqual(rate.rate, 28.0112) self.assertGreater(updated_after, updated_before) api_log = models.ApiLog.select().order_by( models.ApiLog.created.desc()).first() self.assertIsNotNone(api_log) self.assertEqual(api_log.request_url, PRIVAT_API_URL) self.assertIsNotNone(api_log.response_text) self.assertIn( '[{"ccy":"USD","base_ccy":"UAH","buy":"27.40000","sale":"28.01120"}', api_log.response_text)
def _update_rate(self, from_currency, to_currency): api.update_rate(from_currency, to_currency)