mirror of
https://github.com/esphome/esphome.git
synced 2026-10-11 05:44:15 +00:00
[tests] Close leftover server connections in the tcp_uart bridge and TCP client link tests (#20215)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
co-authored by
J. Nick Koston
parent
3447b68136
commit
eb1afa4245
@@ -35,6 +35,7 @@ async def test_socket_tcp_client_link(
|
||||
link_down = asyncio.Event()
|
||||
second_link_up = asyncio.Event()
|
||||
link_up_count = 0
|
||||
writers: list[asyncio.StreamWriter] = []
|
||||
|
||||
def on_log_line(line: str) -> None:
|
||||
nonlocal link_up_count
|
||||
@@ -48,6 +49,7 @@ async def test_socket_tcp_client_link(
|
||||
async def handle(
|
||||
reader: asyncio.StreamReader, writer: asyncio.StreamWriter
|
||||
) -> None:
|
||||
writers.append(writer)
|
||||
if not echo_done.is_set():
|
||||
writer.write(PAYLOAD)
|
||||
await writer.drain()
|
||||
@@ -98,5 +100,9 @@ async def test_socket_tcp_client_link(
|
||||
"Second session echo wrong; stale bytes from the first session?"
|
||||
)
|
||||
finally:
|
||||
# On Python 3.12 wait_closed() waits for every connection the handlers
|
||||
# left open; nothing else closes them once the device has exited.
|
||||
for writer in writers:
|
||||
writer.close()
|
||||
server.close()
|
||||
await server.wait_closed()
|
||||
|
||||
@@ -41,12 +41,14 @@ async def test_tcp_uart_bridge(
|
||||
service_byte_ok = asyncio.Event()
|
||||
reconnect_echo_ok = asyncio.Event()
|
||||
sessions = 0
|
||||
writers: list[asyncio.StreamWriter] = []
|
||||
|
||||
async def handle(
|
||||
reader: asyncio.StreamReader, writer: asyncio.StreamWriter
|
||||
) -> None:
|
||||
nonlocal sessions
|
||||
sessions += 1
|
||||
writers.append(writer)
|
||||
if sessions == 1:
|
||||
writer.write(GREETING)
|
||||
await writer.drain()
|
||||
@@ -98,5 +100,9 @@ async def test_tcp_uart_bridge(
|
||||
reconnect_echo_ok, 15.0, "Bridge did not reconnect and echo again"
|
||||
)
|
||||
finally:
|
||||
# On Python 3.12 wait_closed() waits for every connection the handlers
|
||||
# left open; nothing else closes them once the device has exited.
|
||||
for writer in writers:
|
||||
writer.close()
|
||||
server.close()
|
||||
await server.wait_closed()
|
||||
|
||||
Reference in New Issue
Block a user