Merge 3.5 (asyncio)

This commit is contained in:
Yury Selivanov 2016-06-28 11:00:39 -04:00
commit 5eef78b113
2 changed files with 13 additions and 1 deletions

View File

@ -394,7 +394,8 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
if hasattr(socket, 'AF_UNIX') and sock.family == socket.AF_UNIX:
self._sock_connect(fut, sock, address)
else:
resolved = base_events._ensure_resolved(address, loop=self)
resolved = base_events._ensure_resolved(
address, family=sock.family, proto=sock.proto, loop=self)
resolved.add_done_callback(
lambda resolved: self._on_resolved(fut, sock, resolved))

View File

@ -373,6 +373,17 @@ class BaseSelectorEventLoopTests(test_utils.TestCase):
self.loop.run_until_complete(fut)
self.assertTrue(self.loop.remove_writer.called)
def test_sock_connect_resolve_using_socket_params(self):
addr = ('need-resolution.com', 8080)
sock = test_utils.mock_nonblocking_socket()
self.loop.getaddrinfo = mock.Mock()
self.loop.sock_connect(sock, addr)
while not self.loop.getaddrinfo.called:
self.loop._run_once()
self.loop.getaddrinfo.assert_called_with(
*addr, type=sock.type, family=sock.family, proto=sock.proto,
flags=0)
def test__sock_connect(self):
f = asyncio.Future(loop=self.loop)