oxrlib/tests/test_Rate.py

32 lines
1,019 B
Python
Raw Normal View History

2017-05-09 13:56:08 +00:00
import datetime
2017-05-16 16:26:32 +00:00
import decimal
2017-05-09 13:56:08 +00:00
import io
import json
from . import relpath
import oxrlib.rate
import pytest
2017-05-16 16:26:32 +00:00
HIST1_AED_RATE = decimal.Decimal('3.67246')
HIST1_ALL_RATE = decimal.Decimal('144.529793')
2017-05-09 13:56:08 +00:00
@pytest.fixture
def historical1_rate():
with open(relpath('historical1.json').as_posix()) as rate_file:
return oxrlib.rate.Rate.from_json_file(rate_file)
def test_rate_from_json(historical1_rate):
assert historical1_rate.base == 'USD'
assert historical1_rate.timestamp == datetime.datetime(2001, 2, 16, 12, 0, 0)
def test_serialize(historical1_rate):
with open(relpath('historical1.json').as_posix()) as rate_file:
expected = json.load(rate_file)
assert expected == historical1_rate.serialize()
2017-05-16 16:26:32 +00:00
def test_convert(historical1_rate):
assert historical1_rate.convert(2, 'USD', 'ALL') == (2 * HIST1_ALL_RATE)
assert historical1_rate.convert(10, 'AED', 'USD') == (10 / HIST1_AED_RATE)
assert historical1_rate.convert(1, 'AED', 'ALL') == (HIST1_ALL_RATE / HIST1_AED_RATE)