X-Git-Url: http://git.scottworley.com/paperdoorknob/blobdiff_plain/705973e749e5a9da0453508dbd23de434a0fdc65..386218397a4723129b31e3954bb960da61f72474:/fetch.py diff --git a/fetch.py b/fetch.py index 3c0c6a3..7776f93 100644 --- a/fetch.py +++ b/fetch.py @@ -41,3 +41,14 @@ def DirectFetcher(timeout: int) -> Iterator[_SessionFetcher]: def CachingFetcher(cache_path: str, timeout: int) -> Iterator[_SessionFetcher]: with requests_cache.CachedSession(cache_path, cache_control=True) as session: yield _SessionFetcher(session, timeout) + + +class FakeFetcher(Fetcher): + + def __init__(self, resources: dict[str, bytes]) -> None: + self._resources = resources + + def fetch(self, url: str) -> bytes: + if url not in self._resources: + raise requests.HTTPError("URL not found") + return self._resources[url]