blob: ec7b3ee5104dbe727910115969efc4805881bf1a [file] [log] [blame]
import functools
from tenacity import _utils
def test_is_coroutine_callable() -> None:
async def async_func() -> None:
pass
def sync_func() -> None:
pass
class AsyncClass:
async def __call__(self) -> None:
pass
class SyncClass:
def __call__(self) -> None:
pass
lambda_fn = lambda: None # noqa: E731
partial_async_func = functools.partial(async_func)
partial_sync_func = functools.partial(sync_func)
partial_async_class = functools.partial(AsyncClass().__call__)
partial_sync_class = functools.partial(SyncClass().__call__)
partial_lambda_fn = functools.partial(lambda_fn)
assert _utils.is_coroutine_callable(async_func) is True
assert _utils.is_coroutine_callable(sync_func) is False
assert _utils.is_coroutine_callable(AsyncClass) is False
assert _utils.is_coroutine_callable(AsyncClass()) is True
assert _utils.is_coroutine_callable(SyncClass) is False
assert _utils.is_coroutine_callable(SyncClass()) is False
assert _utils.is_coroutine_callable(lambda_fn) is False
assert _utils.is_coroutine_callable(partial_async_func) is True
assert _utils.is_coroutine_callable(partial_sync_func) is False
assert _utils.is_coroutine_callable(partial_async_class) is True
assert _utils.is_coroutine_callable(partial_sync_class) is False
assert _utils.is_coroutine_callable(partial_lambda_fn) is False