diff --git a/tests/test_CacheWriter.py b/tests/test_CacheWriter.py new file mode 100644 index 0000000000000000000000000000000000000000..b9330757e412328ce149382f35c15dd38a21e4d3 --- /dev/null +++ b/tests/test_CacheWriter.py @@ -0,0 +1,35 @@ +import datetime +import io +import pathlib + +import pytest + +from . import any_date, relpath +import oxrlib.cache +import oxrlib.errors + +CACHE_PATH = relpath('writecache') +HISTORICAL_PATTERN = '{date}_{base}_cache.json' + +class TestCacheFile(oxrlib.cache.WriteCacheFile): + def __init__(self, path, *args, **kwargs): + self.path = path + assert args[0].startswith('w') + + def open(self): + open_file = io.StringIO() + open_file.name = self.path.as_posix() + return open_file + + +@pytest.fixture +def dummycache(): + cache = oxrlib.cache.CacheWriter(CACHE_PATH, file_class=TestCacheFile) + cache.setup(historical=HISTORICAL_PATTERN) + return cache + +def test_cache_success(dummycache, any_date): + base = 'USD' + expect_name = CACHE_PATH / HISTORICAL_PATTERN.format(date=any_date.isoformat(), base=base) + with dummycache.historical(any_date, base) as cache_file: + assert pathlib.Path(cache_file.name) == expect_name