33import concurrent .futures
44import errno
55import math
6- import os
76import platform
87import socket
98import sys
@@ -1301,7 +1300,8 @@ def getaddrinfo_task(*args, **kwds):
13011300 self .assertEqual (len (cm .exception .exceptions ), 1 )
13021301 self .assertIsInstance (cm .exception .exceptions [0 ], OSError )
13031302
1304- def test_create_connection_connect_non_os_err_close_err (self ):
1303+ @patch_socket
1304+ def test_create_connection_connect_non_os_err_close_err (self , m_socket ):
13051305 # Test the case when sock_connect() raises non-OSError exception
13061306 # and sock.close() raises OSError.
13071307 async def getaddrinfo (* args , ** kw ):
@@ -1310,13 +1310,12 @@ async def getaddrinfo(*args, **kw):
13101310 def getaddrinfo_task (* args , ** kwds ):
13111311 return self .loop .create_task (getaddrinfo (* args , ** kwds ))
13121312
1313- async def sock_connect (sock , address ):
1314- # Force sock.close() to raise OSError.
1315- os .close (sock .fileno ())
1316- raise CustomError
1317-
13181313 self .loop .getaddrinfo = getaddrinfo_task
1319- self .loop .sock_connect = sock_connect
1314+ self .loop .sock_connect = mock .Mock ()
1315+ self .loop .sock_connect .side_effect = CustomError
1316+ sock = mock .Mock ()
1317+ m_socket .socket .return_value = sock
1318+ sock .close .side_effect = OSError
13201319
13211320 coro = self .loop .create_connection (MyProto , 'example.com' , 80 )
13221321 self .assertRaises (
0 commit comments