mirror of https://github.com/python/cpython
bpo-44359: Fix test_ftplib unhandled thread exceptions (GH-31069)
test_ftplib now silently ignores socket errors to prevent logging unhandled threading exceptions.
This commit is contained in:
parent
53c7808057
commit
0611eafc70
|
@ -56,6 +56,13 @@ MLSD_DATA = ("type=cdir;perm=el;unique==keVO1+ZF4; test\r\n"
|
|||
"type=file;perm=r;unique==SGP2; file \xAE non-ascii char\r\n")
|
||||
|
||||
|
||||
def default_error_handler():
|
||||
# bpo-44359: Silently ignore socket errors. Such errors occur when a client
|
||||
# socket is closed, in TestFTPClass.tearDown() and makepasv() tests, and
|
||||
# the server gets an error on its side.
|
||||
pass
|
||||
|
||||
|
||||
class DummyDTPHandler(asynchat.async_chat):
|
||||
dtp_conn_closed = False
|
||||
|
||||
|
@ -87,7 +94,7 @@ class DummyDTPHandler(asynchat.async_chat):
|
|||
super(DummyDTPHandler, self).push(what.encode(self.encoding))
|
||||
|
||||
def handle_error(self):
|
||||
raise Exception
|
||||
default_error_handler()
|
||||
|
||||
|
||||
class DummyFTPHandler(asynchat.async_chat):
|
||||
|
@ -137,7 +144,7 @@ class DummyFTPHandler(asynchat.async_chat):
|
|||
self.push('550 command "%s" not understood.' %cmd)
|
||||
|
||||
def handle_error(self):
|
||||
raise Exception
|
||||
default_error_handler()
|
||||
|
||||
def push(self, data):
|
||||
asynchat.async_chat.push(self, data.encode(self.encoding) + b'\r\n')
|
||||
|
@ -315,7 +322,7 @@ class DummyFTPServer(asyncore.dispatcher, threading.Thread):
|
|||
return 0
|
||||
|
||||
def handle_error(self):
|
||||
raise Exception
|
||||
default_error_handler()
|
||||
|
||||
|
||||
if ssl is not None:
|
||||
|
@ -418,7 +425,7 @@ if ssl is not None:
|
|||
raise
|
||||
|
||||
def handle_error(self):
|
||||
raise Exception
|
||||
default_error_handler()
|
||||
|
||||
def close(self):
|
||||
if (isinstance(self.socket, ssl.SSLSocket) and
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
test_ftplib now silently ignores socket errors to prevent logging unhandled
|
||||
threading exceptions. Patch by Victor Stinner.
|
Loading…
Reference in New Issue