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
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
def test_worker_listen(): q = MockQueue() worker = Worker(queue=q) t = Mock() q.enqueue_task(t) worker.listen() assert t.execute.called
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
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