mirror of
https://github.com/python/cpython.git
synced 2025-08-01 23:53:15 +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
|
@ -901,8 +901,25 @@ class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
|
|||
|
||||
testTimeoutDefault = _justAccept
|
||||
def _testTimeoutDefault(self):
|
||||
self.cli = socket.create_connection((HOST, self.port))
|
||||
self.assertTrue(self.cli.gettimeout() is None)
|
||||
# passing no explicit timeout uses socket's global default
|
||||
self.assert_(socket.getdefaulttimeout() is None)
|
||||
socket.setdefaulttimeout(42)
|
||||
try:
|
||||
self.cli = socket.create_connection((HOST, self.port))
|
||||
finally:
|
||||
socket.setdefaulttimeout(None)
|
||||
self.assertEquals(self.cli.gettimeout(), 42)
|
||||
|
||||
testTimeoutNone = _justAccept
|
||||
def _testTimeoutNone(self):
|
||||
# None timeout means the same as sock.settimeout(None)
|
||||
self.assert_(socket.getdefaulttimeout() is None)
|
||||
socket.setdefaulttimeout(30)
|
||||
try:
|
||||
self.cli = socket.create_connection((HOST, self.port), timeout=None)
|
||||
finally:
|
||||
socket.setdefaulttimeout(None)
|
||||
self.assertEqual(self.cli.gettimeout(), None)
|
||||
|
||||
testTimeoutValueNamed = _justAccept
|
||||
def _testTimeoutValueNamed(self):
|
||||
|
@ -914,17 +931,6 @@ class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
|
|||
self.cli = socket.create_connection((HOST, self.port), 30)
|
||||
self.assertEqual(self.cli.gettimeout(), 30)
|
||||
|
||||
testTimeoutNone = _justAccept
|
||||
def _testTimeoutNone(self):
|
||||
previous = socket.getdefaulttimeout()
|
||||
socket.setdefaulttimeout(30)
|
||||
try:
|
||||
self.cli = socket.create_connection((HOST, self.port), timeout=None)
|
||||
finally:
|
||||
socket.setdefaulttimeout(previous)
|
||||
self.assertEqual(self.cli.gettimeout(), 30)
|
||||
|
||||
|
||||
class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
|
||||
|
||||
def __init__(self, methodName='runTest'):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue