mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
Fixed the semantic of timeout for socket.create_connection and
all the upper level libraries that use it, including urllib2. Added and fixed some tests, and changed docs correspondingly. Thanks to John J Lee for the patch and the pusing, :)
This commit is contained in:
parent
f18a707205
commit
4f1b1ed975
24 changed files with 231 additions and 180 deletions
|
|
@ -214,27 +214,32 @@ class TimeoutTest(TestCase):
|
|||
'''This will prove that the timeout gets through
|
||||
HTTPConnection and into the socket.
|
||||
'''
|
||||
# default
|
||||
httpConn = httplib.HTTPConnection(HOST, TimeoutTest.PORT)
|
||||
httpConn.connect()
|
||||
self.assertTrue(httpConn.sock.gettimeout() is None)
|
||||
httpConn.close()
|
||||
|
||||
# a value
|
||||
httpConn = httplib.HTTPConnection(HOST, TimeoutTest.PORT, timeout=30)
|
||||
httpConn.connect()
|
||||
# default -- use global socket timeout
|
||||
self.assert_(socket.getdefaulttimeout() is None)
|
||||
socket.setdefaulttimeout(30)
|
||||
try:
|
||||
httpConn = httplib.HTTPConnection(HOST, TimeoutTest.PORT)
|
||||
httpConn.connect()
|
||||
finally:
|
||||
socket.setdefaulttimeout(None)
|
||||
self.assertEqual(httpConn.sock.gettimeout(), 30)
|
||||
httpConn.close()
|
||||
|
||||
# None, having other default
|
||||
previous = socket.getdefaulttimeout()
|
||||
# no timeout -- do not use global socket default
|
||||
self.assert_(socket.getdefaulttimeout() is None)
|
||||
socket.setdefaulttimeout(30)
|
||||
try:
|
||||
httpConn = httplib.HTTPConnection(HOST, TimeoutTest.PORT,
|
||||
timeout=None)
|
||||
httpConn.connect()
|
||||
finally:
|
||||
socket.setdefaulttimeout(previous)
|
||||
socket.setdefaulttimeout(None)
|
||||
self.assertEqual(httpConn.sock.gettimeout(), None)
|
||||
httpConn.close()
|
||||
|
||||
# a value
|
||||
httpConn = httplib.HTTPConnection(HOST, TimeoutTest.PORT, timeout=30)
|
||||
httpConn.connect()
|
||||
self.assertEqual(httpConn.sock.gettimeout(), 30)
|
||||
httpConn.close()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue