pyinfra/pyinfra/test/queue/queue_manager_mock.py
Matthias Bisping 1147a5dc33 Pull request #23: tests are now run in a container
Merge in RR/pyinfra from containerized_tests to master

Squashed commit of the following:

commit 63f016a7f76af9c91602cf958639ad7fd9b4e832
Merge: 3b399ca 11c9f8a
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 15:07:25 2022 +0100

    Merge branch 'master' into containerized_tests

commit 3b399ca873c1625cde5a34c3b34fd11653af36e4
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 15:03:32 2022 +0100

    removed obsolete log

commit f854695fc22a9853449a1377d5285cc0cd60caf8
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 15:01:22 2022 +0100

    refactoring of imports

commit 72b5c597aa3e5b8ce7c16fb1abeaca8e48015597
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 15:00:37 2022 +0100

    removed obsolete code

commit ee9b0117f6c86fc23be9316b2c3690773c914e79
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:59:42 2022 +0100

    removed obsolete code

commit 020cad6e5b7cdb8e2ad867f5bcc51d5114b281f4
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:54:09 2022 +0100

    undo debug intentional crash

commit 65b77cffd319bc5230ead26391dc6b841ad8e12e
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:51:46 2022 +0100

    debug intentional crash

commit 06133189bc6ecafd0c5a9bc74b8c08b9c097a321
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:49:03 2022 +0100

    fixed syntax error in sconarscan

commit 7468c0738fe7ddabf72baaa07e7422a23c2a6f00
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:43:43 2022 +0100

    failing sonar job if coverage.xml not present as proxcy for failed tests

commit ebcee7ff2a53c643efb64b835f99640567da224b
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:36:34 2022 +0100

    simplified copying of coverage.xml and removing of testcontainer

commit 1fb24d67f10aebe2747b76a4990a3c9fe2c0b00b
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:18:30 2022 +0100

    RABBITMQ_DISK_FREE_ABSOLUTE_LIMIT=20Gi

commit 07873d607097308c5371029a74e115895266d30c
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:12:51 2022 +0100

    RABBITMQ_DISK_FREE_RELATIVE_LIMIT=5%

commit d8eb294fb18c5b0b2418d8a397ef66ef133081bf
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:11:00 2022 +0100

    RABBITMQ_DISK_FREE_RELATIVE_LIMIT=100%

commit f9010ed998f2a5da3940ad3f0d8a2a8cff209b0d
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 14:04:35 2022 +0100

    RABBITMQ_VM_MEMORY_HIGH_WATERMARK=100%

commit 41e9f8046aae66fc9a7248b7c6194fe7e9e9c814
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 13:42:34 2022 +0100

    RABBITMQ_VM_MEMORY_HIGH_WATERMARK=0

commit 301ba05d66452cf5b85511527a35582cd1396803
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 13:19:10 2022 +0100

    set AMPQ heartbeat

commit 9f4dfb9781847bed6077d49e931719c04460e88c
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 10:42:21 2022 +0100

    channel and connection closing experimenting

commit e3812725acff1df2a26e337dbc88df11cd6b8b22
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 10:12:15 2022 +0100

    pika tearndown adjusted

commit 0206be86669c9f4b70bb21d416d6f10ce5e8731a
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 09:58:18 2022 +0100

    return instead of yield in Consumer.consume

commit 17e11adf7822916dd3ece201529796e4dfd89032
Author: Matthias Bisping <matthias.bisping@iqser.com>
Date:   Thu Mar 24 09:51:52 2022 +0100

    processing log added to test

... and 26 more commits
2022-03-24 15:32:34 +01:00

44 lines
1.3 KiB
Python

from pyinfra.queue.queue_manager.queue_manager import QueueManager, QueueHandle
from pyinfra.test.queue.queue_mock import QueueMock
def monkey_patch_queue_handle(queue) -> QueueHandle:
queue_handle = QueueHandle()
queue_handle.empty = lambda: not queue
queue_handle.to_list = lambda: list(queue)
return queue_handle
class QueueManagerMock(QueueManager):
def __init__(self, input_queue, output_queue):
super().__init__(QueueMock(), QueueMock())
def publish_request(self, request):
self._input_queue.append(request)
def publish_response(self, message, callback):
self._output_queue.append(callback(message))
def pull_request(self):
return self._input_queue.popleft()
def consume(self, **kwargs):
while self._input_queue:
yield self.pull_request()
def consume_and_publish(self, callback):
for message in self.consume():
self.publish_response(message, callback)
def clear(self):
self._input_queue.clear()
self._output_queue.clear()
@property
def input_queue(self) -> QueueHandle:
return monkey_patch_queue_handle(self._input_queue)
@property
def output_queue(self) -> QueueHandle:
return monkey_patch_queue_handle(self._output_queue)