def test_runs_timeout(): with pool.PoolExecutor() as executor: now = datetime.datetime.now() futures = [executor.submit(OurTask("ab", wait=0.5))] for key, result in pool.yield_task_results(futures): assert key == "ab" assert result == "ahgsga" assert datetime.datetime.now() - now >= datetime.timedelta( seconds=0.5)
def test_runs_exception(): with pool.PoolExecutor() as executor: futures = [executor.submit(OurTask("ab", ex=RuntimeError()))] with pytest.raises(RuntimeError): for key, result in pool.yield_task_results(futures): pass
def test_yield_task_results_timeout(): fut = concurrent.futures.Future() fut.set_running_or_notify_cancel() with pytest.raises(TimeoutError): for x in pool.yield_task_results([fut], 0.1): raise AssertionError()
def test_runs(): with pool.PoolExecutor() as executor: futures = [executor.submit(OurTask("absvs"))] for key, result in pool.yield_task_results(futures): assert key == "absvs" assert result == "ahgsga"
def test_yield_task_results(): fut = concurrent.futures.Future() fut.set_result(1) fut1 = concurrent.futures.Future() fut1.set_result(10) assert list(pool.yield_task_results([fut, fut1])) == [1, 10]