mirror of
https://github.com/python/cpython.git
synced 2025-10-13 18:33:34 +00:00
asyncio: Coroutine objects are now rejected with a TypeError by the following
functions: * add_signal_handler() * call_at() * call_later() * call_soon() * call_soon_threadsafe() * run_in_executor() Fix also the error message of add_signal_handler() (fix the name of the function).
This commit is contained in:
parent
c1ad35aae8
commit
2d99d93d11
4 changed files with 35 additions and 21 deletions
|
@ -65,15 +65,21 @@ class SelectorEventLoopSignalTests(test_utils.TestCase):
|
|||
|
||||
@mock.patch('asyncio.unix_events.signal')
|
||||
def test_add_signal_handler_coroutine_error(self, m_signal):
|
||||
m_signal.NSIG = signal.NSIG
|
||||
|
||||
@asyncio.coroutine
|
||||
def simple_coroutine():
|
||||
yield from []
|
||||
|
||||
self.assertRaises(
|
||||
TypeError,
|
||||
self.loop.add_signal_handler,
|
||||
signal.SIGINT, simple_coroutine)
|
||||
# callback must not be a coroutine function
|
||||
coro_func = simple_coroutine
|
||||
coro_obj = coro_func()
|
||||
self.addCleanup(coro_obj.close)
|
||||
for func in (coro_func, coro_obj):
|
||||
self.assertRaisesRegex(
|
||||
TypeError, 'coroutines cannot be used with add_signal_handler',
|
||||
self.loop.add_signal_handler,
|
||||
signal.SIGINT, func)
|
||||
|
||||
@mock.patch('asyncio.unix_events.signal')
|
||||
def test_add_signal_handler(self, m_signal):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue