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'])
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'])
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"])