Files @ 7912a3707442
Branch filter:

Location: oxrlib-fork/oxrlib/loaders.py

Brett Smith
tests: Let FileCache tests be in their own file.

These tests aren't likely to share much code with other loader tests.
class LoaderError(Exception):
    pass


class LoaderNoDataError(LoaderError):
    pass


class LoaderBadRequestError(LoaderError):
    pass


class LoaderSourceError(LoaderError):
    pass


class FileCache:
    def __init__(self, dir_path, filename_pattern):
        self.dir_path = dir_path
        self.pattern = filename_pattern

    def historical(self, date, base):
        path = self.dir_path / self.pattern.format(date=date.isoformat(), base=base)
        try:
            return path.open()
        except FileNotFoundError as error:
            raise LoaderNoDataError(path) from error