mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
bpo-32327: Convert asyncio functions documented as coroutines to coroutines. (#4872)
This commit is contained in:
parent
41264f1cd4
commit
19a44f63c7
11 changed files with 170 additions and 195 deletions
|
@ -176,9 +176,15 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
sock = test_utils.mock_nonblocking_socket()
|
||||
self.loop._sock_recv = mock.Mock()
|
||||
|
||||
f = self.loop.sock_recv(sock, 1024)
|
||||
self.assertIsInstance(f, asyncio.Future)
|
||||
self.loop._sock_recv.assert_called_with(f, None, sock, 1024)
|
||||
f = self.loop.create_task(self.loop.sock_recv(sock, 1024))
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
self.assertEqual(self.loop._sock_recv.call_args[0][1:],
|
||||
(None, sock, 1024))
|
||||
|
||||
f.cancel()
|
||||
with self.assertRaises(asyncio.CancelledError):
|
||||
self.loop.run_until_complete(f)
|
||||
|
||||
def test_sock_recv_reconnection(self):
|
||||
sock = mock.Mock()
|
||||
|
@ -188,7 +194,11 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
|
||||
self.loop.add_reader = mock.Mock()
|
||||
self.loop.remove_reader = mock.Mock()
|
||||
fut = self.loop.sock_recv(sock, 1024)
|
||||
fut = self.loop.create_task(
|
||||
self.loop.sock_recv(sock, 1024))
|
||||
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
callback = self.loop.add_reader.call_args[0][1]
|
||||
params = self.loop.add_reader.call_args[0][2:]
|
||||
|
||||
|
@ -198,6 +208,8 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
sock.recv.side_effect = OSError(9)
|
||||
callback(*params)
|
||||
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
self.assertIsInstance(fut.exception(), OSError)
|
||||
self.assertEqual((10,), self.loop.remove_reader.call_args[0])
|
||||
|
||||
|
@ -245,18 +257,26 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
sock = test_utils.mock_nonblocking_socket()
|
||||
self.loop._sock_sendall = mock.Mock()
|
||||
|
||||
f = self.loop.sock_sendall(sock, b'data')
|
||||
self.assertIsInstance(f, asyncio.Future)
|
||||
f = self.loop.create_task(
|
||||
self.loop.sock_sendall(sock, b'data'))
|
||||
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
self.assertEqual(
|
||||
(f, None, sock, b'data'),
|
||||
self.loop._sock_sendall.call_args[0])
|
||||
(None, sock, b'data'),
|
||||
self.loop._sock_sendall.call_args[0][1:])
|
||||
|
||||
f.cancel()
|
||||
with self.assertRaises(asyncio.CancelledError):
|
||||
self.loop.run_until_complete(f)
|
||||
|
||||
def test_sock_sendall_nodata(self):
|
||||
sock = test_utils.mock_nonblocking_socket()
|
||||
self.loop._sock_sendall = mock.Mock()
|
||||
|
||||
f = self.loop.sock_sendall(sock, b'')
|
||||
self.assertIsInstance(f, asyncio.Future)
|
||||
f = self.loop.create_task(self.loop.sock_sendall(sock, b''))
|
||||
self.loop.run_until_complete(asyncio.sleep(0, loop=self.loop))
|
||||
|
||||
self.assertTrue(f.done())
|
||||
self.assertIsNone(f.result())
|
||||
self.assertFalse(self.loop._sock_sendall.called)
|
||||
|
@ -269,7 +289,10 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
|
||||
self.loop.add_writer = mock.Mock()
|
||||
self.loop.remove_writer = mock.Mock()
|
||||
fut = self.loop.sock_sendall(sock, b'data')
|
||||
fut = self.loop.create_task(self.loop.sock_sendall(sock, b'data'))
|
||||
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
callback = self.loop.add_writer.call_args[0][1]
|
||||
params = self.loop.add_writer.call_args[0][2:]
|
||||
|
||||
|
@ -279,6 +302,8 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
sock.send.side_effect = OSError(9)
|
||||
callback(*params)
|
||||
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
self.assertIsInstance(fut.exception(), OSError)
|
||||
self.assertEqual((10,), self.loop.remove_writer.call_args[0])
|
||||
|
||||
|
@ -402,17 +427,17 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
def test_sock_connect_resolve_using_socket_params(self, m_gai):
|
||||
addr = ('need-resolution.com', 8080)
|
||||
sock = test_utils.mock_nonblocking_socket()
|
||||
m_gai.side_effect = (None, None, None, None, ('127.0.0.1', 0))
|
||||
m_gai._is_coroutine = False
|
||||
|
||||
m_gai.side_effect = \
|
||||
lambda *args: [(None, None, None, None, ('127.0.0.1', 0))]
|
||||
|
||||
con = self.loop.create_task(self.loop.sock_connect(sock, addr))
|
||||
while not m_gai.called:
|
||||
self.loop._run_once()
|
||||
self.loop.run_until_complete(con)
|
||||
m_gai.assert_called_with(
|
||||
addr[0], addr[1], sock.family, sock.type, sock.proto, 0)
|
||||
|
||||
con.cancel()
|
||||
with self.assertRaises(asyncio.CancelledError):
|
||||
self.loop.run_until_complete(con)
|
||||
self.loop.run_until_complete(con)
|
||||
sock.connect.assert_called_with(('127.0.0.1', 0))
|
||||
|
||||
def test__sock_connect(self):
|
||||
f = asyncio.Future(loop=self.loop)
|
||||
|
@ -487,10 +512,15 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
|
|||
sock = test_utils.mock_nonblocking_socket()
|
||||
self.loop._sock_accept = mock.Mock()
|
||||
|
||||
f = self.loop.sock_accept(sock)
|
||||
self.assertIsInstance(f, asyncio.Future)
|
||||
self.assertEqual(
|
||||
(f, False, sock), self.loop._sock_accept.call_args[0])
|
||||
f = self.loop.create_task(self.loop.sock_accept(sock))
|
||||
self.loop.run_until_complete(asyncio.sleep(0.01, loop=self.loop))
|
||||
|
||||
self.assertFalse(self.loop._sock_accept.call_args[0][1])
|
||||
self.assertIs(self.loop._sock_accept.call_args[0][2], sock)
|
||||
|
||||
f.cancel()
|
||||
with self.assertRaises(asyncio.CancelledError):
|
||||
self.loop.run_until_complete(f)
|
||||
|
||||
def test__sock_accept(self):
|
||||
f = asyncio.Future(loop=self.loop)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue