Exemplo n.º 1
0
    def test_dequeue(self):
        # Test dequeueing (fetching) tasks.
        with patch('psq.queue.Queue._get_or_create_topic'):
            q = Queue(Mock())
            t = Task('1', sum, (1, 2), {'arg': 'c'})
            sub_mock = Mock()
            q._get_or_create_subscription = Mock(return_value=sub_mock)

            # No messages
            sub_mock.pull.return_value = []

            tasks = q.dequeue()

            assert sub_mock.pull.called
            assert not tasks

            # One Message
            sub_mock.pull.reset_mock()
            sub_mock.pull.return_value = [
                ('ack_id', MockMessage(dumps(t)))]

            tasks = q.dequeue()

            assert sub_mock.pull.called
            sub_mock.acknowledge.assert_called_once_with(['ack_id'])
            assert tasks[0].id == t.id
            assert tasks[0].f == t.f
            assert tasks[0].args == t.args
            assert tasks[0].kwargs == t.kwargs

            # Bad message
            sub_mock.pull.reset_mock()
            sub_mock.acknowledge.reset_mock()
            sub_mock.pull.return_value = [
                ('ack_id', MockMessage('this is a bad pickle string'))]

            tasks = q.dequeue()

            assert not tasks
            assert sub_mock.pull.called
            sub_mock.acknowledge.assert_called_once_with(['ack_id'])
Exemplo n.º 2
0
def test_dequeue():
    # Test dequeueing (fetching) tasks.
    with patch('psq.queue.Queue._get_or_create_topic'):
        q = Queue(Mock())
        t = Task('1', sum, (1, 2), {'arg': 'c'})
        sub_mock = Mock()
        q._get_or_create_subscription = Mock(return_value=sub_mock)

        # No messages
        sub_mock.pull.return_value = []

        tasks = q.dequeue()

        assert sub_mock.pull.called
        assert not tasks

        # One Message
        sub_mock.pull.reset_mock()
        sub_mock.pull.return_value = [('ack_id', MockMessage(dumps(t)))]

        tasks = q.dequeue()

        assert sub_mock.pull.called
        sub_mock.acknowledge.assert_called_once_with(['ack_id'])
        assert tasks[0].id == t.id
        assert tasks[0].f == t.f
        assert tasks[0].args == t.args
        assert tasks[0].kwargs == t.kwargs

        # Bad message
        sub_mock.pull.reset_mock()
        sub_mock.acknowledge.reset_mock()
        sub_mock.pull.return_value = [
            ('ack_id', MockMessage('this is a bad pickle string'))
        ]

        tasks = q.dequeue()

        assert not tasks
        assert sub_mock.pull.called
        sub_mock.acknowledge.assert_called_once_with(['ack_id'])
Exemplo n.º 3
0
def test_dequeue():
    # Test dequeueing (fetching) tasks.
    with patch("psq.queue.Queue._get_or_create_topic"):
        q = Queue(Mock())
        t = Task("1", sum, (1, 2), {"arg": "c"})
        sub_mock = Mock()
        q._get_or_create_subscription = Mock(return_value=sub_mock)

        # No messages
        sub_mock.pull.return_value = []

        tasks = q.dequeue()

        assert sub_mock.pull.called
        assert not tasks

        # One Message
        sub_mock.pull.reset_mock()
        sub_mock.pull.return_value = [("ack_id", MockMessage(dumps(t)))]

        tasks = q.dequeue()

        assert sub_mock.pull.called
        sub_mock.acknowledge.assert_called_once_with(["ack_id"])
        assert tasks[0].id == t.id
        assert tasks[0].f == t.f
        assert tasks[0].args == t.args
        assert tasks[0].kwargs == t.kwargs

        # Bad message
        sub_mock.pull.reset_mock()
        sub_mock.acknowledge.reset_mock()
        sub_mock.pull.return_value = [("ack_id", MockMessage("this is a bad pickle string"))]

        tasks = q.dequeue()

        assert not tasks
        assert sub_mock.pull.called
        sub_mock.acknowledge.assert_called_once_with(["ack_id"])