summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-07-18 17:08:35 (GMT)
committerGuido van Rossum <guido@python.org>2002-07-18 17:08:35 (GMT)
commit9d0c8cee660030391e7017674f176fa2b496adde (patch)
treecec6c500182747d0e15985b54eddd72d3eb74224 /Lib
parent8b6ec79b74284873696b24ab979fb1cb579b86f8 (diff)
downloadcpython-9d0c8cee660030391e7017674f176fa2b496adde.zip
cpython-9d0c8cee660030391e7017674f176fa2b496adde.tar.gz
cpython-9d0c8cee660030391e7017674f176fa2b496adde.tar.bz2
Add default timeout functionality. This adds setdefaulttimeout() and
getdefaulttimeout() functions to the socket and _socket modules, and appropriate tests.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/socket.py2
-rw-r--r--Lib/test/test_socket.py30
2 files changed, 32 insertions, 0 deletions
diff --git a/Lib/socket.py b/Lib/socket.py
index bd0bfd7..c351a91 100644
--- a/Lib/socket.py
+++ b/Lib/socket.py
@@ -21,6 +21,8 @@ htons(), htonl() -- convert 16, 32 bit int from host to network byte order
inet_aton() -- convert IP addr string (123.45.67.89) to 32-bit packed format
inet_ntoa() -- convert 32-bit packed format IP to string (123.45.67.89)
ssl() -- secure socket layer support (only available if configured)
+socket.getdefaulttimeout() -- get the default timeout value
+socket.setdefaulttimeout() -- set the default timeout value
[*] not available on all platforms!
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index c9ef5d6..b9b9db6 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -297,6 +297,36 @@ class GeneralModuleTests(unittest.TestCase):
except socket.error:
pass
+ def testDefaultTimeout(self):
+ """Testing default timeout."""
+ # The default timeout should initially be None
+ self.assertEqual(socket.getdefaulttimeout(), None)
+ s = socket.socket()
+ self.assertEqual(s.gettimeout(), None)
+ s.close()
+
+ # Set the default timeout to 10, and see if it propagates
+ socket.setdefaulttimeout(10)
+ self.assertEqual(socket.getdefaulttimeout(), 10)
+ s = socket.socket()
+ self.assertEqual(s.gettimeout(), 10)
+ s.close()
+
+ # Reset the default timeout to None, and see if it propagates
+ socket.setdefaulttimeout(None)
+ self.assertEqual(socket.getdefaulttimeout(), None)
+ s = socket.socket()
+ self.assertEqual(s.gettimeout(), None)
+ s.close()
+
+ # Check that setting it to an invalid value raises ValueError
+ self.assertRaises(ValueError, socket.setdefaulttimeout, -1)
+
+ # Check that setting it to an invalid type raises TypeError
+ self.assertRaises(TypeError, socket.setdefaulttimeout, "spam")
+
+ # XXX The following three don't test module-level functionality...
+
def testSockName(self):
"""Testing getsockname()."""
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)