test refac

This commit is contained in:
Matthias Bisping 2022-02-24 10:57:19 +01:00
parent 0e74828a45
commit 213e41198a
2 changed files with 48 additions and 39 deletions

View File

@ -3,4 +3,4 @@ import pytest
@pytest.fixture
def bucket_name():
return "test-bucket"
return "pyinfra-test-bucket"

View File

@ -1,49 +1,58 @@
import pytest
from pyinfra.storage.adapters.azure import AzureStorageAdapter
from pyinfra.storage.clients.azure import get_azure_client
from pyinfra.storage.storage import Storage
from pyinfra.storage.storages import get_azure_storage
from pyinfra.test.storage.adapter_mock import StorageAdapterMock
from pyinfra.test.storage.client_mock import StorageClientMock
class StorageTester:
def __init__(self, adapter):
self.bucket_name = "pyinfra-test-bucket"
self.storage = Storage(adapter=adapter)
def test_purging_bucket_yields_empty_bucket(self):
self.storage.purge(self.bucket_name)
data_received = self.storage.get_all(self.bucket_name)
assert not {*data_received}
def test_getting_object_put_in_bucket_is_object(self):
self.storage.put(self.bucket_name, "file", b"content")
data_received = self.storage.get(self.bucket_name, "file")
assert b"content" == data_received
def test_getting_objects_put_in_bucket_are_objects(self):
self.storage.put(self.bucket_name, "file1", b"content 1")
self.storage.put(self.bucket_name, "file2", b"content 2")
data_received = self.storage.get_all(self.bucket_name)
assert {b"content 1", b"content 2"} == {*data_received}
def get_client(client_name):
if client_name == "mock":
return StorageAdapterMock(StorageClientMock())
if client_name == "azure":
return get_azure_storage()
@pytest.fixture
def storage_tester(client_name):
client = get_client(client_name)
return StorageTester(client)
@pytest.mark.parametrize("client_name", ["mock", "azure"])
def test_purging_bucket_yields_empty_bucket(storage, bucket_name):
storage.purge(bucket_name)
data_received = storage.get_all(bucket_name)
assert not {*data_received}
@pytest.mark.parametrize("client_name", ["mock", "azure"])
def test_storages(storage_tester):
storage_tester.test_purging_bucket_yields_empty_bucket()
storage_tester.test_getting_objects_put_in_bucket_are_objects()
storage_tester.test_getting_object_put_in_bucket_is_object()
assert True
def test_getting_object_put_in_bucket_is_object(storage, bucket_name):
storage.put(bucket_name, "file", b"content")
data_received = storage.get(bucket_name, "file")
assert b"content" == data_received
@pytest.mark.parametrize("client_name", ["mock", "azure"])
def test_getting_objects_put_in_bucket_are_objects(storage, bucket_name):
storage.put(bucket_name, "file1", b"content 1")
storage.put(bucket_name, "file2", b"content 2")
data_received = storage.get_all(bucket_name)
assert {b"content 1", b"content 2"} == {*data_received}
def get_adapter(client_name):
if client_name == "mock":
return StorageAdapterMock(StorageClientMock())
if client_name == "azure":
return AzureStorageAdapter(get_azure_client())
@pytest.fixture
def adapter(client_name):
adapter = get_adapter(client_name)
return adapter
@pytest.fixture
def storage(client_name, bucket_name):
storage = Storage(get_adapter(client_name))
storage.purge(bucket_name)
return storage
# @pytest.mark.parametrize("client_name", ["mock", "azure"])
# def test_storages(adapter):
# storage_tester.test_purging_bucket_yields_empty_bucket()
# storage_tester.test_getting_objects_put_in_bucket_are_objects()
# storage_tester.test_getting_object_put_in_bucket_is_object()
# assert True