diff --git a/minode/tests/test_queue.py b/minode/tests/test_queue.py new file mode 100644 index 0000000..95e20ca --- /dev/null +++ b/minode/tests/test_queue.py @@ -0,0 +1,38 @@ +import time + +import zmq + +from .test_process import TestProcessProto + + +class TestProcessQueue(TestProcessProto): + _process_cmd = ['minode', '--msg-queue'] + + @classmethod + def setUpClass(cls): + super().setUpClass() + context = zmq.Context() + cls.socket = context.socket(zmq.SUB) + cls.socket.connect('tcp://localhost:5556') + cls.socket.setsockopt(zmq.RCVTIMEO, 120000) + cls.socket.setsockopt(zmq.SUBSCRIBE, b'obj') + + def test_receive_msg(self): + """wait a couple of messages""" + timeout = 240 + start = time.time() + c = 0 + while time.time() - start < timeout: + if c > 1: + return + try: + tag, data = self.socket.recv().split(b'\x00', 1) + except zmq.error.Again: + time.sleep(2) + continue + else: + c += 1 + self.assertEqual(tag, b'obj') + + if c == 0: + self.fail('No messages received in %ss' % timeout) diff --git a/requirements.txt b/requirements.txt index e560573..2e91134 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ coverage psutil +pyzmq