async def test_worker_listens_on_same_interface_by_default(Worker): async with Scheduler(host="localhost") as s: assert s.ip in {"127.0.0.1", "localhost"} async with Worker(s.address) as w: assert s.ip == w.ip
async def test_io_loop(cleanup): async with Scheduler(port=0) as s: async with Worker(s.address, loop=s.loop) as w: assert w.io_loop is s.loop
def test_scheduler_init_pulls_blocked_handlers_from_config(): with dask.config.set({"distributed.scheduler.blocked-handlers": ["test-handler"]}): s = Scheduler() assert s.blocked_handlers == ["test-handler"]
def test_io_loop(loop): s = Scheduler(loop=loop, validate=True) assert s.io_loop is loop
def test_host_address(): s = yield Scheduler(host="127.0.0.2", port=0) assert "127.0.0.2" in s.address yield s.close()
def test_io_loop(loop): s = Scheduler(loop=loop) s.listen(0) assert s.io_loop is loop w = Worker(s.address, loop=loop) assert w.io_loop is loop
async def test_worker_nthreads(cleanup): async with Scheduler() as s: async with Worker(s.address) as w: assert w.executor._max_workers == CPU_COUNT
def test_io_loop(loop): s = Scheduler(loop=loop) s.listen(0) assert s.io_loop is loop w = Worker(s.ip, s.port, loop=loop) assert w.io_loop is loop
def test_update_state_with_processing(loop): s = Scheduler() s.start(0) s.add_worker(address=alice, ncores=1, coerce_address=False) s.update_graph(tasks={ 'x': 1, 'y': (inc, 'x'), 'z': (inc, 'y') }, keys=['z'], dependencies={ 'y': {'x'}, 'x': set(), 'z': {'y'} }, client='client') s.mark_task_finished('x', alice, nbytes=10, type=dumps(int), compute_start=10, compute_stop=11) s.ensure_occupied(alice) assert s.waiting == {'z': {'y'}} assert s.waiting_data == {'x': {'y'}, 'y': {'z'}, 'z': set()} assert list(s.ready) == [] assert s.who_wants == {'z': {'client'}} assert s.wants_what == {'client': {'z'}} assert s.who_has == {'x': {alice}} s.update_graph(tasks={ 'a': (inc, 'x'), 'b': (add, 'a', 'y'), 'c': (inc, 'z') }, keys=['b', 'c'], dependencies={ 'a': {'x'}, 'b': {'a', 'y'}, 'c': {'z'} }, client='client') assert s.waiting == {'z': {'y'}, 'b': {'a', 'y'}, 'c': {'z'}} assert 'a' in s.stacks[alice] or 'a' in s.processing[alice] assert not s.ready assert s.waiting_data == { 'x': {'y', 'a'}, 'y': {'z', 'b'}, 'z': {'c'}, 'a': {'b'}, 'b': set(), 'c': set() } assert s.who_wants == {'b': {'client'}, 'c': {'client'}, 'z': {'client'}} assert s.wants_what == {'client': {'b', 'c', 'z'}} s.stop()