import io
import pytest
import oxrlib.errors
import oxrlib.loaders
from . import any_date
SUCCESS_S = '"success"\n'
ERROR = oxrlib.loaders.LoaderNoDataError("test")
ERROR = oxrlib.errors.LoaderNoDataError("test")
class FakeLoader:
def __init__(self, result):
self.result = result
def _respond(self, *args, **kwargs):
return io.StringIO(self.result)
def __getattr__(self, name):
return self._respond
@@ -34,25 +35,25 @@ def lchain():
@pytest.fixture
def good_loader():
return FakeLoader(SUCCESS_S)
def error_loader():
return FakeErrorLoader(ERROR)
def test_no_loaders(lchain, any_date):
try:
lchain.historical(any_date, 'USD')
except oxrlib.loaders.NoLoadersError:
except oxrlib.errors.NoLoadersError:
pass
else:
assert False, "expected NoLoadersError not raised"
def test_one_with_success(lchain, any_date, good_loader):
lchain.add_loader(good_loader)
response = lchain.historical(any_date, 'USD')
assert response.read(32) == SUCCESS_S
def test_two_with_success(lchain, any_date, good_loader, error_loader):
lchain.add_loader(error_loader)