Fix and improve test_queue:
- decrease timeout, remove unneeded sleep; - make and check objects from the data received in message queue; - add docstrings.
This commit is contained in:
parent
4ea139c9f6
commit
504f12e5d0
|
@ -1,11 +1,15 @@
|
||||||
|
"""Test interprocess queues"""
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import zmq
|
import zmq
|
||||||
|
|
||||||
|
from minode import structure, message
|
||||||
|
|
||||||
from .test_process import TestProcessProto
|
from .test_process import TestProcessProto
|
||||||
|
|
||||||
|
|
||||||
class TestProcessQueue(TestProcessProto):
|
class TestProcessQueue(TestProcessProto):
|
||||||
|
"""A test case starting the process with queues"""
|
||||||
_process_cmd = ['minode', '--msg-queue']
|
_process_cmd = ['minode', '--msg-queue']
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -14,7 +18,7 @@ class TestProcessQueue(TestProcessProto):
|
||||||
context = zmq.Context()
|
context = zmq.Context()
|
||||||
cls.socket = context.socket(zmq.SUB)
|
cls.socket = context.socket(zmq.SUB)
|
||||||
cls.socket.connect('tcp://localhost:5556')
|
cls.socket.connect('tcp://localhost:5556')
|
||||||
cls.socket.setsockopt(zmq.RCVTIMEO, 120000)
|
cls.socket.setsockopt(zmq.RCVTIMEO, 5000)
|
||||||
cls.socket.setsockopt(zmq.SUBSCRIBE, b'obj')
|
cls.socket.setsockopt(zmq.SUBSCRIBE, b'obj')
|
||||||
|
|
||||||
def test_receive_msg(self):
|
def test_receive_msg(self):
|
||||||
|
@ -28,11 +32,15 @@ class TestProcessQueue(TestProcessProto):
|
||||||
try:
|
try:
|
||||||
tag, data = self.socket.recv().split(b'\x00', 1)
|
tag, data = self.socket.recv().split(b'\x00', 1)
|
||||||
except zmq.error.Again:
|
except zmq.error.Again:
|
||||||
time.sleep(2)
|
|
||||||
continue
|
continue
|
||||||
else:
|
|
||||||
c += 1
|
c += 1
|
||||||
self.assertEqual(tag, b'obj')
|
self.assertEqual(tag, b'obj')
|
||||||
|
obj_type, data = data.split(b'\x00', 1)
|
||||||
|
obj = structure.Object.from_message(
|
||||||
|
message.Message(b'object', data))
|
||||||
|
self.assertEqual(int(obj_type), obj.object_type)
|
||||||
|
self.assertTrue(obj.is_valid())
|
||||||
|
|
||||||
if c == 0:
|
if c == 0:
|
||||||
self.fail('No messages received in %ss' % timeout)
|
self.fail('No messages received in %ss' % timeout)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user