Fixed bug where calling write_eof() on a _SelectorSocketTransport after
it's already closed raises AttributeError.
self._sock.shutdown(socket.SHUT_WR)
def write_eof(self):
- if self._eof:
+ if self._closing or self._eof:
return
self._eof = True
if not self._buffer:
self.sock.shutdown.assert_called_with(socket.SHUT_WR)
tr.close()
+ def test_write_eof_after_close(self):
+ tr = self.socket_transport()
+ tr.close()
+ self.loop.run_until_complete(asyncio.sleep(0))
+ tr.write_eof()
+
@mock.patch('asyncio.base_events.logger')
def test_transport_close_remove_writer(self, m_log):
remove_writer = self.loop._remove_writer = mock.Mock()
--- /dev/null
+Fixed bug where calling write_eof() on a _SelectorSocketTransport after it's
+already closed raises AttributeError.