def _worker_conflicts_with_currently_running(worker): """Get the workers this worker would conflict with if it ran now. :param worker: worker that we wish to start. :type worker: RedisWorker :returns: [RedisWorker] """ foreign_running_workers = get_workers_with_unprocessed_results() blockers = set() for foreign in foreign_running_workers: if not workers_are_compatible(worker, foreign): blockers.add(foreign) return blockers
def test_workers_with_unproc_results(self, mocker): w_c_run = mocker.Mock() w_c_run.in_celery = True w_c_run.status = StatusWorker.running w_c_ran = mocker.Mock() w_c_ran.in_celery = True w_c_ran.status = StatusWorker.ran w_c_failed = mocker.Mock() w_c_failed.in_celery = True w_c_failed.status = StatusWorker.failed w_C_ran = mocker.Mock() w_C_ran.in_celery = False w_C_ran.status = StatusWorker.ran mocker.patch('invenio_checker.clients.worker.get_workers_in_redis', mocker.Mock(return_value={w_c_run, w_c_ran, w_c_failed})) from invenio_checker.clients.worker import get_workers_with_unprocessed_results assert get_workers_with_unprocessed_results() == {w_c_run, w_c_ran}