Skip to content

Commit

Permalink
Merge 150ddb4 into b798551
Browse files Browse the repository at this point in the history
  • Loading branch information
nmichaud committed Sep 22, 2020
2 parents b798551 + 150ddb4 commit 4527a45
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
21 changes: 21 additions & 0 deletions tests/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -732,6 +732,27 @@ async def handler(request):
await client_ws.send_message('Hello from client!')


async def test_server_sends_after_close(nursery):
done = trio.Event()

async def handler(request):
server_ws = await request.accept()
with pytest.raises(ConnectionClosed):
while True:
await server_ws.send_message('Hello from server')
done.set()

server = await nursery.start(serve_websocket, handler, HOST, 0, None)
stream = await trio.open_tcp_stream(HOST, server.port)
client_ws = await wrap_client_stream(nursery, stream, HOST, RESOURCE)
async with client_ws:
# pump a few messages
for x in range(2):
await client_ws.send_message('Hello from client')
await stream.aclose()
await done.wait()


async def test_server_does_not_close_handshake(nursery):
async def handler(stream):
request = await wrap_server_stream(nursery, stream)
Expand Down
2 changes: 1 addition & 1 deletion trio_websocket/_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -1069,7 +1069,7 @@ async def _handle_message_event(self, event):
self._message_parts = []
try:
await self._send_channel.send(msg)
except trio.BrokenResourceError:
except (trio.ClosedResourceError, trio.BrokenResourceError):
# The receive channel is closed, probably because somebody
# called ``aclose()``. We don't want to abort the reader task,
# and there's no useful cleanup that we can do here.
Expand Down

0 comments on commit 4527a45

Please sign in to comment.