From f9ce6f80a9ab5045f8a5736a43866e728f898685 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Wed, 23 Feb 2022 16:33:41 +0100 Subject: [PATCH] refactorig: Added abstract baseclass for StorageAdapter --- pyinfra/storage/adapter.py | 17 ++++++++++++++++- pyinfra/test/storage/adapter_mock.py | 6 ++++-- pyinfra/test/storage/client_mock.py | 1 - 3 files changed, 20 insertions(+), 4 deletions(-) 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] = {} -