gh-84753: Make inspect.iscoroutinefunction() work with AsyncMock (GH-94050) (GH-94460)

The inspect version was not working with unittest.mock.AsyncMock.

The fix introduces special-casing of AsyncMock in
`inspect.iscoroutinefunction` equivalent to the one
performed in `asyncio.iscoroutinefunction`.

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
(cherry picked from commit 4261b6bffc)

Co-authored-by: Mehdi ABAAKOUK <sileht@sileht.net>
This commit is contained in:
Miss Islington (bot) 2022-06-30 11:04:42 -07:00 committed by GitHub
parent 7fe949e5ea
commit 9ebec7d46c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 1 deletions

View file

@ -202,6 +202,10 @@ class TestPredicates(IsTestBase):
gen_coroutine_function_example))))
self.assertTrue(inspect.isgenerator(gen_coro))
self.assertFalse(
inspect.iscoroutinefunction(unittest.mock.Mock()))
self.assertTrue(
inspect.iscoroutinefunction(unittest.mock.AsyncMock()))
self.assertTrue(
inspect.iscoroutinefunction(coroutine_function_example))
self.assertTrue(
@ -210,6 +214,10 @@ class TestPredicates(IsTestBase):
coroutine_function_example))))
self.assertTrue(inspect.iscoroutine(coro))
self.assertFalse(
inspect.isgeneratorfunction(unittest.mock.Mock()))
self.assertFalse(
inspect.isgeneratorfunction(unittest.mock.AsyncMock()))
self.assertFalse(
inspect.isgeneratorfunction(coroutine_function_example))
self.assertFalse(
@ -218,6 +226,12 @@ class TestPredicates(IsTestBase):
coroutine_function_example))))
self.assertFalse(inspect.isgenerator(coro))
self.assertFalse(
inspect.isasyncgenfunction(unittest.mock.Mock()))
self.assertFalse(
inspect.isasyncgenfunction(unittest.mock.AsyncMock()))
self.assertFalse(
inspect.isasyncgenfunction(coroutine_function_example))
self.assertTrue(
inspect.isasyncgenfunction(async_generator_function_example))
self.assertTrue(