def test_future_unwrap_cancel(): prom = Promise() future = prom.future().unwrap() future.cancel() assert prom.isCancelRequested() nested = Promise() prom.setValue(nested.future()) # TODO add some sync-ness to remove those time.sleep :( time.sleep(0.1) assert nested.isCancelRequested() nested.setCanceled() time.sleep(0.1) assert future.isCanceled()
def test_future_andthen_cancel(): global called called = False def callback(v): global called called = True assert False p = Promise() f = p.future() f2 = f.andThen(callback) f2.cancel() assert p.isCancelRequested() p.setCanceled() f2.wait(1000) assert f2.isFinished() assert f2.isCanceled() time.sleep(0.1) assert not called