示例#1
0
 def setUp(self):
     self._zmqctx = zmq.Context()
     self._back_socket = self._zmqctx.socket(zmq.PAIR)
     self._back_socket.bind(ENDPOINT)
     self._front_socket = self._zmqctx.socket(zmq.PAIR)
     self._front_socket.connect(ENDPOINT)
     self._message_queue = MessageQueue(
         self._back_socket, "test message queue",
         validateControlReply, { COMMAND: self._handle_command })
     self._command_handled = False
示例#2
0
 def setUp(self):
     self._zmqctx = zmq.Context()
     self._back_socket = self._zmqctx.socket(zmq.PAIR)
     self._back_socket.bind(ENDPOINT)
     self._front_socket = self._zmqctx.socket(zmq.PAIR)
     self._front_socket.connect(ENDPOINT)
     self._message_queue = MessageQueue(
         self._back_socket, "test message queue",
         REPLY_SUCCESS_PREFIX, { COMMAND: self._handle_command })
     self._command_handled = False
示例#3
0
class MessageQueueTest(unittest.TestCase):
    """Unit test suite for message queue"""

    def setUp(self):
        self._zmqctx = zmq.Context()
        self._back_socket = self._zmqctx.socket(zmq.PAIR)
        self._back_socket.bind(ENDPOINT)
        self._front_socket = self._zmqctx.socket(zmq.PAIR)
        self._front_socket.connect(ENDPOINT)
        self._message_queue = MessageQueue(
            self._back_socket, "test message queue",
            validateControlReply, { COMMAND: self._handle_command })
        self._command_handled = False

    def tearDown(self):
        self._zmqctx.destroy()

    def testSendCommand(self):
        sendCommand(self._front_socket, COMMAND, arg=1)
        self.assertEqual(
            self._back_socket.recv_multipart(flags=zmq.NOBLOCK),
            [b'', COMMAND, COMMAND, b'arg', b'1'])

    def testIncorrectPrefix(self):
        self._front_socket.send_multipart([b'this', b'is', b'incorrect'])
        self.assertFalse(self._message_queue.handleMessages())

    def testFailedStatusCode(self):
        self._front_socket.send_multipart([b'', COMMAND, b'ERR', b'arg', b'123'])
        self.assertFalse(self._message_queue.handleMessages())

    def testMissingStatusCode(self):
        self._front_socket.send_multipart([b'', COMMAND])
        self.assertFalse(self._message_queue.handleMessages())

    def testIncorrectCommand(self):
        self._front_socket.send_multipart([b'', b'incorrect', b'OK'])
        self.assertFalse(self._message_queue.handleMessages())

    def testIncorrectSerialization(self):
        self._front_socket.send_multipart(REPLY_SUCCESS_PREFIX + [b'incorrect'])
        self.assertFalse(self._message_queue.handleMessages())

    def testIncorrectArgument(self):
        self._front_socket.send_multipart(
            REPLY_SUCCESS_PREFIX + [b'arg', b'not json'])
        self.assertFalse(self._message_queue.handleMessages())

    def testHandleMessage(self):
        self._front_socket.send_multipart(
            REPLY_SUCCESS_PREFIX + [b'arg', b'123'])
        self.assertTrue(self._message_queue.handleMessages())
        self.assertTrue(self._command_handled)

    def _handle_command(self, arg):
        self.assertEqual(arg, 123)
        self._command_handled = True
示例#4
0
class MessageQueueTest(unittest.TestCase):
    """Unit test suite for message queue"""

    def setUp(self):
        self._zmqctx = zmq.Context()
        self._back_socket = self._zmqctx.socket(zmq.PAIR)
        self._back_socket.bind(ENDPOINT)
        self._front_socket = self._zmqctx.socket(zmq.PAIR)
        self._front_socket.connect(ENDPOINT)
        self._message_queue = MessageQueue(
            self._back_socket, "test message queue",
            REPLY_SUCCESS_PREFIX, { COMMAND: self._handle_command })
        self._command_handled = False

    def tearDown(self):
        self._zmqctx.destroy()

    def testSendCommand(self):
        sendCommand(self._front_socket, COMMAND, arg=1)
        self.assertEqual(
            self._back_socket.recv_multipart(flags=zmq.NOBLOCK),
            [b'', COMMAND, b'arg', b'1'])

    def testIncorrectPrefix(self):
        self._front_socket.send_multipart((b'this', b'is', b'incorrect'))
        self.assertFalse(self._message_queue.handleMessages())

    def testMissingCommand(self):
        self._front_socket.send_multipart(REPLY_SUCCESS_PREFIX)
        self.assertFalse(self._message_queue.handleMessages())

    def testIncorrectCommand(self):
        self._front_socket.send_multipart(REPLY_SUCCESS_PREFIX + [b'incorrect'])
        self.assertFalse(self._message_queue.handleMessages())

    def testIncorrectSerialization(self):
        self._front_socket.send_multipart(REPLY_SUCCESS_PREFIX + [b'incorrect'])
        self.assertFalse(self._message_queue.handleMessages())

    def testIncorrectArgument(self):
        self._front_socket.send_multipart(
            REPLY_SUCCESS_PREFIX + [COMMAND, b'arg', b'not json'])
        self.assertFalse(self._message_queue.handleMessages())

    def testHandleMessage(self):
        self._front_socket.send_multipart(
            REPLY_SUCCESS_PREFIX + [COMMAND, b'arg', b'123'])
        self.assertTrue(self._message_queue.handleMessages())
        self.assertTrue(self._command_handled)

    def _handle_command(self, arg):
        self.assertEqual(arg, 123)
        self._command_handled = True