Esempio n. 1
0
    def testRecvFloodedSocket(self):
        """Test receiving an event when watermark was passed."""
        streamsock = mock.NonCallableMock()
        streamsock.recv.side_effect = self.events[2]
        streamsock.getsockopt.side_effect = [True, True, False]

        reqsock = mock.NonCallableMock()
        toreceive = (self.events[1][0], self.events[1][2], b'END')
        reqsock.recv.side_effect = toreceive
        # Need two 'False' here due to assertion logic in query code
        reqsock.getsockopt.side_effect = [True, True, False, False]

        results = []
        for result in clients.yield_events_after(streamsock, reqsock,
                                                 self.events[0][0]):
            results.append(result)

        # Implementation specific tests that have been used mostly for
        # debugging of the code. Can be removed without being too worried.
        assert not streamsock.send.called
        reqsock.send.assert_has_calls([
            mock.call(b"QUERY", zmq.SNDMORE),
            mock.call(self.events[0][0], zmq.SNDMORE),
            mock.call(self.events[1][0])
        ])
        self.assertEqual(streamsock.recv.call_count, 3,
                         streamsock.recv.call_args_list)
        self.assertEqual(reqsock.recv.call_count, 3)

        # The actual test that makes sure result is what it's supposed to be.
        self.assertEqual(results, [(self.events[1][0], self.events[1][2]),
                                   (self.events[2][0], self.events[2][2])])
Esempio n. 2
0
    def testRecvFloodedSocket(self):
        """Test receiving an event when watermark was passed."""
        streamsock = mock.NonCallableMock()
        streamsock.recv.side_effect = self.events[2]
        streamsock.getsockopt.side_effect = [True, True, False]

        reqsock = mock.NonCallableMock()
        toreceive = (self.events[1][0], self.events[1][2], b'END')
        reqsock.recv.side_effect = toreceive
        # Need two 'False' here due to assertion logic in query code
        reqsock.getsockopt.side_effect = [True, True, False, False]

        results = []
        for result in clients.yield_events_after(streamsock, reqsock,
                                                 self.events[0][0]):
            results.append(result)

        # Implementation specific tests that have been used mostly for
        # debugging of the code. Can be removed without being too worried.
        assert not streamsock.send.called
        reqsock.send.assert_has_calls([mock.call(b"QUERY", zmq.SNDMORE),
                                       mock.call(self.events[0][0],
                                                 zmq.SNDMORE),
                                       mock.call(self.events[1][0])])
        self.assertEqual(streamsock.recv.call_count, 3,
                         streamsock.recv.call_args_list)
        self.assertEqual(reqsock.recv.call_count, 3)

        # The actual test that makes sure result is what it's supposed to be.
        self.assertEqual(results, [(self.events[1][0], self.events[1][2]),
                                   (self.events[2][0], self.events[2][2])])
Esempio n. 3
0
    def testRecvFirstEvent(self):
        """Test fetching the absolutely first event."""
        streamsock = mock.NonCallableMock()
        streamsock.recv.side_effect = self.events[0]
        streamsock.getsockopt.side_effect = [True, True, False, False]

        reqsock = mock.NonCallableMock()

        results = []
        for result in clients.yield_events_after(streamsock, reqsock):
            results.append(result)
        self.assertEqual(results, [(self.events[0][0], self.events[0][2])])
        assert streamsock.recv.called
        assert not reqsock.recv.called
Esempio n. 4
0
    def testRecvFirstEvent(self):
        """Test fetching the absolutely first event."""
        streamsock = mock.NonCallableMock()
        streamsock.recv.side_effect = self.events[0]
        streamsock.getsockopt.side_effect = [True, True, False, False]

        reqsock = mock.NonCallableMock()

        results = []
        for result in clients.yield_events_after(streamsock, reqsock):
            results.append(result)
        self.assertEqual(results, [(self.events[0][0], self.events[0][2])])
        assert streamsock.recv.called
        assert not reqsock.recv.called
Esempio n. 5
0
    def testRecvNonFloodedNextEvent(self):
        """Test receiving the next event through streaming socket only."""
        streamsock = mock.NonCallableMock()
        streamsock.recv.side_effect = self.events[2]
        streamsock.getsockopt.side_effect = [True, True, False]

        reqsock = mock.NonCallableMock()

        results = []
        for result in clients.yield_events_after(streamsock, reqsock,
                                                 self.events[1][0]):
            results.append(result)
        self.assertEqual(results, [(self.events[2][0], self.events[2][2])])
        assert streamsock.recv.called
        assert not reqsock.recv.called
Esempio n. 6
0
    def testRecvNonFloodedNextEvent(self):
        """Test receiving the next event through streaming socket only."""
        streamsock = mock.NonCallableMock()
        streamsock.recv.side_effect = self.events[2]
        streamsock.getsockopt.side_effect = [True, True, False]

        reqsock = mock.NonCallableMock()

        results = []
        for result in clients.yield_events_after(streamsock, reqsock,
                                                 self.events[1][0]):
            results.append(result)
        self.assertEqual(results, [(self.events[2][0], self.events[2][2])])
        assert streamsock.recv.called
        assert not reqsock.recv.called