def test_race(c, s, *workers): def f(i): with worker_client() as c: v = Variable('x', client=c) for _ in range(100): future = v.get() x = future.result() y = c.submit(inc, x) v.set(y) sleep(0.01) result = v.get().result() sleep(0.1) # allow fire-and-forget messages to clear return result v = Variable('x', client=c) x = yield c._scatter(1) yield v._set(x) futures = c.map(f, range(10)) results = yield c._gather(futures) assert all(r > 80 for r in results) start = time() while len(s.wants_what['variable-x']) != 1: yield gen.sleep(0.01) if not time() - start < 2: import pdb pdb.set_trace()
def test_queue_with_data(c, s, a, b): x = Variable('x') xx = Variable('x') assert x.client is c yield x._set([1, 'hello']) data = yield xx._get() assert data == [1, 'hello']
def test_timeout_get(c, s, a, b): v = Variable('v') tornado_future = v._get() vv = Variable('v') yield vv._set(1) result = yield tornado_future assert result == 1
def test_cleanup(c, s, a, b): v = Variable('v') vv = Variable('v') x = c.submit(lambda x: x + 1, 10) y = c.submit(lambda x: x + 1, 20) x_key = x.key yield v.set(x) del x yield gen.sleep(0.1) t_future = xx = vv._get() yield gen.moment v._set(y) future = yield t_future assert future.key == x_key result = yield future assert result == 11
def test_cleanup(c, s, a, b): v = Variable('v') vv = Variable('v') x = c.submit(lambda x: x + 1, 10) y = c.submit(lambda x: x + 1, 20) x_key = x.key yield v.set(x) del x yield gen.sleep(0.1) t_future = xx = vv._get() yield gen.moment v._set(y) future = yield t_future assert future.key == x_key result = yield future assert result == 11
def test_hold_futures(s, a, b): c1 = yield Client(s.address, asynchronous=True) future = c1.submit(lambda x: x + 1, 10) x1 = Variable('x') yield x1._set(future) del x1 yield c1._shutdown() yield gen.sleep(0.1) c2 = yield Client(s.address, asynchronous=True) x2 = Variable('x') future2 = yield x2._get() result = yield future2 assert result == 11 yield c2._shutdown()
def test_variable(c, s, a, b): x = Variable('x') xx = Variable('x') assert x.client is c future = c.submit(inc, 1) yield x._set(future) future2 = yield xx._get() assert future.key == future2.key del future, future2 yield gen.sleep(0.1) assert s.task_state # future still present x.delete() start = time() while s.task_state: yield gen.sleep(0.01) assert time() < start + 5