Minimal test for msg queue: wait for a msg at most for 4 min

This commit is contained in:
Dmitri Bogomolov 2021-03-12 18:18:32 +02:00 committed by Lee Miller
parent 3c56afc570
commit e5187c7887
Signed by: lee.miller
GPG Key ID: 4F97A5EA88F4AB63
2 changed files with 39 additions and 0 deletions

View File

@ -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)

View File

@ -1,2 +1,3 @@
coverage
psutil
pyzmq