test refac

This commit is contained in:
Matthias Bisping 2022-03-14 19:05:59 +01:00
parent 1205adecdb
commit 9130b9fc75
3 changed files with 9 additions and 10 deletions

View File

@ -106,9 +106,9 @@ def analysis_callback(callback):
@pytest.fixture
def response_strategy(response_strategy_name):
def response_strategy(response_strategy_name, storage):
if response_strategy_name == "storage":
return StorageStrategy()
return StorageStrategy(storage)
if response_strategy_name == "forwarding":
return ForwardingStrategy()

View File

@ -3,7 +3,7 @@ import json
import pytest
from pyinfra.visitor import get_object_descriptor, StorageStrategy, get_response_object_descriptor
from pyinfra.visitor import get_object_descriptor, get_response_object_descriptor
@pytest.fixture()
@ -12,8 +12,8 @@ def body():
@pytest.mark.parametrize("client_name", ["mock", "azure", "s3"], scope="session")
@pytest.mark.parametrize("response_strategy_name", ["forwarding", "storage"], scope="session")
class TestVisitor:
@pytest.mark.parametrize("response_strategy_name", ["forwarding", "storage"], scope="session")
def test_given_a_input_queue_message_callback_pulls_the_data_from_storage(
self, visitor, body, storage, bucket_name
):
@ -22,17 +22,15 @@ class TestVisitor:
data_received = visitor.load_data(body)
assert b"content" == data_received
@pytest.mark.parametrize("response_strategy_name", ["forwarding", "storage"], scope="session")
def test_visitor_pulls_and_processes_data(self, visitor, body, storage, bucket_name):
storage.clear_bucket(bucket_name)
storage.put_object(**get_object_descriptor(body), data=gzip.compress("2".encode()))
response_body = visitor.load_and_process(body)
assert response_body["data"] == "22"
@pytest.mark.parametrize("response_strategy_name", ["storage"], scope="session")
def test_visitor_puts_response_on_storage(self, visitor, body, storage, bucket_name):
visitor.response_strategy = StorageStrategy()
visitor.response_strategy.storage = storage
storage.clear_bucket(bucket_name)
storage.put_object(**get_object_descriptor(body), data=gzip.compress("2".encode()))
response_body = visitor(body)

View File

@ -40,6 +40,9 @@ class ResponseStrategy(abc.ABC):
class StorageStrategy(ResponseStrategy):
def __init__(self, storage):
self.storage = storage
def handle_response(self, body):
self.storage.put_object(**get_response_object_descriptor(body), data=gzip.compress(json.dumps(body).encode()))
body.pop("data")
@ -56,8 +59,6 @@ class QueueVisitor:
self.storage = storage
self.callback = callback
self.response_strategy = response_strategy
# TODO: a little dirty
self.response_strategy.storage = self.storage
def load_data(self, body):
def download():