2a324c0076
fixes #89 instead of saving the multiaddr received in the listen method of the tcp transport class, read what the service is actually listening on this allow to use 0 as port and let the OS choose a free port for us
21 lines
582 B
Python
21 lines
582 B
Python
import asyncio
|
|
|
|
import pytest
|
|
|
|
from transport.tcp.tcp import _multiaddr_from_socket
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_multiaddr_from_socket():
|
|
def handler(r, w):
|
|
pass
|
|
|
|
server = await asyncio.start_server(handler, '127.0.0.1', 8000)
|
|
assert str(_multiaddr_from_socket(server.sockets[0])) == '/ip4/127.0.0.1/tcp/8000'
|
|
|
|
server = await asyncio.start_server(handler, '127.0.0.1', 0)
|
|
addr = _multiaddr_from_socket(server.sockets[0])
|
|
assert addr.value_for_protocol('ip4') == '127.0.0.1'
|
|
port = addr.value_for_protocol('tcp')
|
|
assert int(port) > 0
|