consumer with visitor test fixed (added connection.close() in case of pika queue manager)
This commit is contained in:
parent
c415dcd8e6
commit
f21cbc141e
@ -56,8 +56,8 @@ def get_connection():
|
|||||||
class PikaQueueManager(QueueManager):
|
class PikaQueueManager(QueueManager):
|
||||||
def __init__(self, input_queue, output_queue):
|
def __init__(self, input_queue, output_queue):
|
||||||
super().__init__(input_queue, output_queue)
|
super().__init__(input_queue, output_queue)
|
||||||
connection = get_connection()
|
self.connection = get_connection()
|
||||||
self.channel = connection.channel()
|
self.channel = self.connection.channel()
|
||||||
self.channel.queue_declare(input_queue)
|
self.channel.queue_declare(input_queue)
|
||||||
self.channel.queue_declare(output_queue)
|
self.channel.queue_declare(output_queue)
|
||||||
|
|
||||||
|
|||||||
@ -85,11 +85,14 @@ def get_queue_manager(queue_manager_name) -> QueueManager:
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def queue_manager(queue_manager_name) -> QueueManager:
|
def queue_manager(queue_manager_name):
|
||||||
return get_queue_manager(queue_manager_name)
|
queue_manager = get_queue_manager(queue_manager_name)
|
||||||
|
yield queue_manager
|
||||||
|
if queue_manager_name == "pika":
|
||||||
|
queue_manager.connection.close()
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture(scope="session")
|
||||||
def callback():
|
def callback():
|
||||||
return lambda x: x * 2
|
return lambda x: x * 2
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ from pyinfra.pyampq.consumer import Consumer
|
|||||||
from pyinfra.visitor import get_object_descriptor, ForwardingStrategy
|
from pyinfra.visitor import get_object_descriptor, ForwardingStrategy
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture(scope="session")
|
||||||
def consumer(queue_manager, callback):
|
def consumer(queue_manager, callback):
|
||||||
return Consumer(callback, queue_manager)
|
return Consumer(callback, queue_manager)
|
||||||
|
|
||||||
@ -52,67 +52,64 @@ class TestConsumer:
|
|||||||
# self, consumer, queue_manager, visitor, storage, bucket_name
|
# self, consumer, queue_manager, visitor, storage, bucket_name
|
||||||
# ):
|
# ):
|
||||||
#
|
#
|
||||||
|
# def produce_items():
|
||||||
|
# for i in range(3):
|
||||||
|
# body = {
|
||||||
|
# "dossierId": "folder",
|
||||||
|
# "fileId": f"file{i}",
|
||||||
|
# "targetFileExtension": "in.gz",
|
||||||
|
# "responseFileExtension": "out.gz"
|
||||||
|
# }
|
||||||
|
# yield f"{i}".encode(), body
|
||||||
|
#
|
||||||
# visitor.response_strategy = ForwardingStrategy()
|
# visitor.response_strategy = ForwardingStrategy()
|
||||||
#
|
#
|
||||||
|
# queue_manager.clear()
|
||||||
# storage.clear_bucket(bucket_name)
|
# storage.clear_bucket(bucket_name)
|
||||||
# queue_manager.clear()
|
|
||||||
#
|
|
||||||
# def produce_items():
|
|
||||||
# for i in range(3):
|
|
||||||
# body = {
|
|
||||||
# "dossierId": "folder",
|
|
||||||
# "fileId": f"file{i}",
|
|
||||||
# "targetFileExtension": "in.gz",
|
|
||||||
# "responseFileExtension": "out.gz"
|
|
||||||
# }
|
|
||||||
# yield b"content", body
|
|
||||||
#
|
|
||||||
# items = list(produce_items())
|
|
||||||
#
|
|
||||||
# for data, item in items:
|
|
||||||
# storage.put_object(**get_object_descriptor(item), data=gzip.compress(data))
|
|
||||||
# queue_manager.publish_request(item)
|
|
||||||
#
|
|
||||||
# requests = list(consumer.consume())
|
|
||||||
# print(1111111111111111111)
|
|
||||||
#
|
|
||||||
# print(requests)
|
|
||||||
# for _, r in zip(items, requests):
|
|
||||||
# print(r)
|
|
||||||
# queue_manager.publish_response(r, visitor)
|
|
||||||
#
|
|
||||||
# assert list(map(itemgetter("data"), queue_manager.output_queue.to_list())) == ["00", "11", "22"]
|
|
||||||
|
|
||||||
# @pytest.mark.parametrize("client_name", ["mock", "s3", "azure"], scope="session")
|
|
||||||
# def test_visitor(
|
|
||||||
# self, consumer, queue_manager, access_callback, bucket_name, storage
|
|
||||||
# ):
|
|
||||||
#
|
|
||||||
# def produce_items():
|
|
||||||
# for i in range(3):
|
|
||||||
# body = {
|
|
||||||
# "dossierId": "folder",
|
|
||||||
# "fileId": f"file{i}",
|
|
||||||
# "targetFileExtension": "in.gz",
|
|
||||||
# "responseFileExtension": "out.gz"
|
|
||||||
# }
|
|
||||||
# yield "content".encode(), body
|
|
||||||
#
|
|
||||||
# queue_manager.clear()
|
|
||||||
# # storage.clear_bucket(bucket_name)
|
|
||||||
#
|
#
|
||||||
# for data, message in produce_items():
|
# for data, message in produce_items():
|
||||||
# # storage.put_object(**get_object_descriptor(message), data=gzip.compress(data))
|
# storage.put_object(**get_object_descriptor(message), data=gzip.compress(data))
|
||||||
# queue_manager.publish_request(message)
|
# queue_manager.publish_request(message)
|
||||||
#
|
#
|
||||||
# print(11111111111111111111111111)
|
|
||||||
#
|
|
||||||
# requests = consumer.consume()
|
# requests = consumer.consume()
|
||||||
#
|
#
|
||||||
# for _, r in zip(produce_items(), requests):
|
# for _, r in zip(produce_items(), requests):
|
||||||
# queue_manager.publish_response(r, access_callback)
|
# queue_manager.publish_response(r, visitor)
|
||||||
#
|
#
|
||||||
# assert queue_manager.output_queue.to_list() == ["file0", "file1", "file2"]
|
# assert list(map(itemgetter("data"), queue_manager.output_queue.to_list())) == ["00", "11", "22"]
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("client_name", ["mock", "s3", "azure"], scope="session")
|
||||||
|
@pytest.mark.parametrize("response_strategy_name", ["forwarding", "storage"], scope="session")
|
||||||
|
def test_consuming_nonempty_input_queue_with_visitor_puts_messages_on_output_queue_in_fifo_order(
|
||||||
|
self, consumer, queue_manager, visitor,
|
||||||
|
bucket_name, storage
|
||||||
|
):
|
||||||
|
|
||||||
|
def produce_items():
|
||||||
|
for i in range(3):
|
||||||
|
body = {
|
||||||
|
"dossierId": "folder",
|
||||||
|
"fileId": f"file{i}",
|
||||||
|
"targetFileExtension": "in.gz",
|
||||||
|
"responseFileExtension": "out.gz"
|
||||||
|
}
|
||||||
|
yield f"{i}".encode(), body
|
||||||
|
|
||||||
|
visitor.response_strategy = ForwardingStrategy()
|
||||||
|
|
||||||
|
queue_manager.clear()
|
||||||
|
storage.clear_bucket(bucket_name)
|
||||||
|
|
||||||
|
for data, message in produce_items():
|
||||||
|
storage.put_object(**get_object_descriptor(message), data=gzip.compress(data))
|
||||||
|
queue_manager.publish_request(message)
|
||||||
|
|
||||||
|
requests = consumer.consume()
|
||||||
|
|
||||||
|
for _, r in zip(produce_items(), requests):
|
||||||
|
queue_manager.publish_response(r, visitor)
|
||||||
|
|
||||||
|
assert list(map(itemgetter("data"), queue_manager.output_queue.to_list())) == ["00", "11", "22"]
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger("minio")
|
logger = logging.getLogger("minio")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user