31 lines
1,019 B
Python
31 lines
1,019 B
Python
import datetime
|
|
import decimal
|
|
import io
|
|
import json
|
|
|
|
from . import relpath
|
|
|
|
import oxrlib.rate
|
|
import pytest
|
|
|
|
HIST1_AED_RATE = decimal.Decimal('3.67246')
|
|
HIST1_ALL_RATE = decimal.Decimal('144.529793')
|
|
|
|
@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()
|
|
|
|
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)
|