bpo-37251: Removes __code__ check from _is_async_obj. (GH-15830)
(cherry picked from commit f1a297acb60b88917712450ebd3cfa707e6efd6b)
Co-authored-by: Lisa Roach <lisaroach14@gmail.com>
diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
index 915883d..7bfbfc9 100644
--- a/Lib/unittest/mock.py
+++ b/Lib/unittest/mock.py
@@ -46,10 +46,9 @@
_safe_super = super
def _is_async_obj(obj):
- if getattr(obj, '__code__', None):
- return asyncio.iscoroutinefunction(obj) or inspect.isawaitable(obj)
- else:
+ if _is_instance_mock(obj) and not isinstance(obj, AsyncMock):
return False
+ return asyncio.iscoroutinefunction(obj) or inspect.isawaitable(obj)
def _is_async_func(func):