Skip to content

Commit 5166913

Browse files
committed
test for socket binding
1 parent 554ed39 commit 5166913

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/test_connector.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,32 @@ def handler(request):
752752
r.close()
753753
conn.close()
754754

755+
def test_tcp_connector_uses_provided_local_addr(self):
756+
@asyncio.coroutine
757+
def handler(request):
758+
return web.HTTPOk()
759+
760+
app, srv, url = self.loop.run_until_complete(
761+
self.create_server('get', '/', handler)
762+
)
763+
764+
port = self.find_unused_port()
765+
conn = aiohttp.TCPConnector(loop=self.loop,
766+
local_addr=('127.0.0.1', port))
767+
768+
r = self.loop.run_until_complete(
769+
aiohttp.request(
770+
'get', url,
771+
connector=conn
772+
))
773+
774+
self.loop.run_until_complete(r.release())
775+
first_conn = next(iter(conn._conns.values()))[0][0]
776+
self.assertEqual(first_conn._sock.getsockname(), ('127.0.0.1', port))
777+
r.close()
778+
779+
conn.close()
780+
755781
@unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'requires unix')
756782
def test_unix_connector(self):
757783
@asyncio.coroutine

0 commit comments

Comments
 (0)