Merge in RR/pyinfra from partial_responses to master
Squashed commit of the following:
commit afd67d87a6349c4b97453a12274c6ccf5e976339
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date: Tue Apr 26 12:48:12 2022 +0200
updated test container dockerfile for new location of tests directory
commit 37881da08ebedf0f2d0c6c2b267bdb47818a0da1
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date: Tue Apr 26 12:45:12 2022 +0200
restructuring: moved test out of module scope
39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
import gzip
|
|
import json
|
|
|
|
import pytest
|
|
|
|
from pyinfra.visitor import get_object_descriptor, get_response_object_descriptor
|
|
|
|
|
|
@pytest.fixture()
|
|
def body():
|
|
return {"dossierId": "folder", "fileId": "file", "targetFileExtension": "in.gz", "responseFileExtension": "out.gz"}
|
|
|
|
|
|
@pytest.mark.parametrize("client_name", ["mock", "azure", "s3"], 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
|
|
):
|
|
storage.clear_bucket(bucket_name)
|
|
storage.put_object(**get_object_descriptor(body), data=gzip.compress(b"content"))
|
|
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):
|
|
storage.clear_bucket(bucket_name)
|
|
storage.put_object(**get_object_descriptor(body), data=gzip.compress("2".encode()))
|
|
response_body = visitor(body)
|
|
assert "data" not in response_body
|
|
assert json.loads(gzip.decompress(storage.get_object(**get_response_object_descriptor(body))))["data"] == "22"
|