]> git.scottworley.com Git - paperdoorknob/blobdiff - images.py
FakeImageStore for tests
[paperdoorknob] / images.py
index 178f7085f5a10a4feeae780b04707aacc92b07ae..d9926a3c1387b072919855b3c78d9bc023a8e719 100644 (file)
--- a/images.py
+++ b/images.py
@@ -4,17 +4,25 @@
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation, version 3.
 
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation, version 3.
 
+from abc import ABC, abstractmethod
 import os
 import os.path
 
 from fetch import Fetcher
 
 
 import os
 import os.path
 
 from fetch import Fetcher
 
 
+class ImageStore(ABC):
+
+    @abstractmethod
+    def get_image(self, url: str) -> str:
+        raise NotImplementedError()
+
+
 class ImageStoreError(Exception):
     pass
 
 
 class ImageStoreError(Exception):
     pass
 
 
-class ImageStore:
+class DiskImageStore(ImageStore):
 
     def __init__(self, root_path: str, fetcher: Fetcher) -> None:
         self._root_path = root_path
 
     def __init__(self, root_path: str, fetcher: Fetcher) -> None:
         self._root_path = root_path
@@ -46,3 +54,9 @@ class ImageStore:
             self._filenames.add(name)
             self._images[url] = path
         return self._images[url]
             self._filenames.add(name)
             self._images[url] = path
         return self._images[url]
+
+
+class FakeImageStore(ImageStore):
+
+    def get_image(self, url: str) -> str:
+        return 'stored:' + url