Python源码示例:asyncio.isfuture()
示例1
def test_isfuture(self):
class MyFuture:
_asyncio_future_blocking = None
def __init__(self):
self._asyncio_future_blocking = False
self.assertFalse(asyncio.isfuture(MyFuture))
self.assertTrue(asyncio.isfuture(MyFuture()))
self.assertFalse(asyncio.isfuture(1))
self.assertFalse(asyncio.isfuture(asyncio.Future))
# As `isinstance(Mock(), Future)` returns `False`
self.assertFalse(asyncio.isfuture(mock.Mock()))
# As `isinstance(Mock(Future), Future)` returns `True`
self.assertTrue(asyncio.isfuture(mock.Mock(asyncio.Future)))
f = asyncio.Future(loop=self.loop)
self.assertTrue(asyncio.isfuture(f))
f.cancel()
示例2
def test_isfuture(self):
class MyFuture:
_asyncio_future_blocking = None
def __init__(self):
self._asyncio_future_blocking = False
self.assertFalse(asyncio.isfuture(MyFuture))
self.assertTrue(asyncio.isfuture(MyFuture()))
self.assertFalse(asyncio.isfuture(1))
# As `isinstance(Mock(), Future)` returns `False`
self.assertFalse(asyncio.isfuture(mock.Mock()))
f = self._new_future(loop=self.loop)
self.assertTrue(asyncio.isfuture(f))
self.assertFalse(asyncio.isfuture(type(f)))
# As `isinstance(Mock(Future), Future)` returns `True`
self.assertTrue(asyncio.isfuture(mock.Mock(type(f))))
f.cancel()
示例3
def test_api_calls_return_a_response_when_run_in_sync_mode(self):
self.client.token = "xoxb-api_test"
resp = self.client.api_test()
self.assertFalse(asyncio.isfuture(resp))
self.assertTrue(resp["ok"])
示例4
def test_api_calls_return_a_future_when_run_in_async_mode(self):
self.client.token = "xoxb-api_test"
self.client.run_async = True
future = self.client.api_test()
self.assertTrue(asyncio.isfuture(future))
resp = await future
self.assertEqual(200, resp.status_code)
self.assertTrue(resp["ok"])
示例5
def _dispatch(self, f, value=None):
self._check_exhausted()
if f is None:
return
elif asyncio.isfuture(f):
f.set_result(value)
elif asyncio.iscoroutinefunction(f):
self.loop.create_task(f(value))
else:
f(value)
# self.loop.call_soon(functools.partial(f, value))
示例6
def __init__(self, identifier, hashable_key, type_spec, target_future):
"""Creates a cached value.
Args:
identifier: An instance of `CachedValueIdentifier`.
hashable_key: A hashable source value key, if any, or `None` of not
applicable in this context, for use during cleanup.
type_spec: The type signature of the target, an instance of `tff.Type`.
target_future: An asyncio future that returns an instance of
`executor_value_base.ExecutorValue` that represents a value embedded in
the target executor.
Raises:
TypeError: If the arguments are of the wrong types.
"""
py_typecheck.check_type(identifier, CachedValueIdentifier)
py_typecheck.check_type(hashable_key, collections.Hashable)
py_typecheck.check_type(type_spec, computation_types.Type)
if not asyncio.isfuture(target_future):
raise TypeError('Expected an asyncio future, got {}'.format(
py_typecheck.type_string(type(target_future))))
self._identifier = identifier
self._hashable_key = hashable_key
self._type_spec = type_spec
self._target_future = target_future
self._computed_result = None
示例7
def test_mock_from_create_future(self, klass):
loop = asyncio.new_event_loop()
try:
if not (hasattr(loop, "create_future") and
hasattr(asyncio, "isfuture")):
return
mock = klass(loop.create_future())
self.assertTrue(asyncio.isfuture(mock))
finally:
loop.close()
示例8
def isfuture(fut):
return isinstance(fut, asyncio.Future)
示例9
def isfuture(fut):
return isinstance(fut, asyncio.Future)
示例10
def test_start_stop(self):
self.assertTrue(asyncio.isfuture(self.order_book_tracker._order_book_snapshot_router_task))
self.order_book_tracker.stop()
self.assertIsNone(self.order_book_tracker._order_book_snapshot_router_task)
self.order_book_tracker.start()
示例11
def test_wrap_future(self):
def run(arg):
return (arg, threading.get_ident())
ex = concurrent.futures.ThreadPoolExecutor(1)
f1 = ex.submit(run, 'oi')
f2 = asyncio.wrap_future(f1, loop=self.loop)
res, ident = self.loop.run_until_complete(f2)
self.assertTrue(asyncio.isfuture(f2))
self.assertEqual(res, 'oi')
self.assertNotEqual(ident, threading.get_ident())
ex.shutdown(wait=True)