Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
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')
Ejemplo n.º 5
0
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()}")
Ejemplo n.º 6
0
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()}")
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
    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")
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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'
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
    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)
Ejemplo n.º 15
0
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
Ejemplo n.º 16
0
    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)
Ejemplo n.º 17
0
 def _update_rate(self, from_currency, to_currency):
     api.update_rate(from_currency, to_currency)