Example #1
0
def test_worker_safe_dequeue(sleep_mock):
    q = Mock()
    t = Mock()
    worker = Worker(queue=q)

    # Test two errors and a success.
    q.dequeue.side_effect = [ValueError(''), ValueError(''), [t]]

    tasks = worker._safe_dequeue()

    assert tasks == [t]
    assert sleep_mock.call_count == 2

    # Test 5 sequential errors, should raise.
    sleep_mock.reset_mock()
    q.dequeue.side_effect = [
        ValueError(''),
        ValueError(''),
        ValueError(''),
        ValueError(''),
        RuntimeError('')
    ]

    with pytest.raises(RuntimeError):
        worker._safe_dequeue()

    assert sleep_mock.call_count == 4
Example #2
0
def test_worker_listen_failed_start():
    q = mock.create_autospec(Queue, instance=True)
    q.storage = None
    q.listen.side_effect = KeyboardInterrupt()
    worker = Worker(queue=q)

    worker.listen()

    assert q.cleanup.called
Example #3
0
def test_worker_listen():
    q = MockQueue()
    worker = Worker(queue=q)

    t = Mock()
    q.enqueue_task(t)

    worker.listen()

    assert t.execute.called
Example #4
0
def test_worker_listen():
    q = MockQueue()
    worker = Worker(queue=q)

    t = Mock()
    q.enqueue_task(t)

    worker.listen()

    assert t.execute.called
Example #5
0
def test_worker_listen():
    q = MockQueue()
    worker = Worker(queue=q)

    t = mock.Mock()
    q.enqueue_task(t)

    worker.listen()

    assert t.execute.called
    assert q.subscriber.result.called
    assert q.subscriber.cancel.called
Example #6
0
def test_worker_safe_dequeue(sleep_mock):
    q = Mock()
    t = Mock()
    worker = Worker(queue=q)

    # Test two errors and a success.
    q.dequeue.side_effect = [ValueError(''), ValueError(''), [t]]

    tasks = worker._safe_dequeue()

    assert tasks == [t]
    assert sleep_mock.call_count == 2

    # Test 5 sequential errors, should raise.
    sleep_mock.reset_mock()
    q.dequeue.side_effect = [
        ValueError(''), ValueError(''), ValueError(''), ValueError(''),
        RuntimeError('')]

    with pytest.raises(RuntimeError):
        worker._safe_dequeue()

    assert sleep_mock.call_count == 4