diff --git a/pyinfra/storage/adapter.py b/pyinfra/storage/adapter.py index 6a30f5e..61b51e8 100644 --- a/pyinfra/storage/adapter.py +++ b/pyinfra/storage/adapter.py @@ -1,7 +1,22 @@ -class StorageAdapter: +from abc import ABC, abstractmethod + + +class StorageAdapter(ABC): def __init__(self, client): self.__client = client + @abstractmethod + def put(self, bucket_name, object_name, data): + pass + @abstractmethod + def get(self, bucket_name, object_name): + pass + @abstractmethod + def get_all(self, bucket_name): + pass + @abstractmethod + def purge(self, bucket_name): + pass diff --git a/pyinfra/test/storage/adapter_mock.py b/pyinfra/test/storage/adapter_mock.py index 71f69ef..34280fe 100644 --- a/pyinfra/test/storage/adapter_mock.py +++ b/pyinfra/test/storage/adapter_mock.py @@ -1,10 +1,12 @@ +from pyinfra.storage.adapter import StorageAdapter from pyinfra.test.storage.client_mock import StorageClientMock -class StorageAdapterMock: +class StorageAdapterMock(StorageAdapter): def __init__(self, client: StorageClientMock): assert isinstance(client, StorageClientMock) - self.__client = client + super().__init__(client=client) + self.__client = self._StorageAdapter__client def put(self, bucket_name, object_name, data): return self.__client.put(bucket_name, object_name, data) diff --git a/pyinfra/test/storage/client_mock.py b/pyinfra/test/storage/client_mock.py index 69d0695..cfc3eaa 100644 --- a/pyinfra/test/storage/client_mock.py +++ b/pyinfra/test/storage/client_mock.py @@ -16,4 +16,3 @@ class StorageClientMock: def purge(self, bucket_name): self.__data[bucket_name] = {} -