__all__.extend(os._get_exports_list(_ssl))
_realsocket = socket
-_needwrapper = False
if (sys.platform.lower().startswith("win")
or (hasattr(os, 'uname') and os.uname()[0] == "BeOS")
or sys.platform=="riscos"):
- _needwrapper = True
-
if _have_ssl:
_realssl = ssl
def ssl(sock, keyfile=None, certfile=None):
exec _s % (_m, _m, _m, _m)
del _m, _s
-if _needwrapper:
- socket = SocketType = _socketobject
+socket = SocketType = _socketobject
class _fileobject(object):
"""Faux file object attached to a socket object."""
--- /dev/null
+#!/usr/bin/env python
+
+import unittest
+from test import test_support
+
+import socket
+import urllib2
+import sys
+
+class URLTimeoutTest(unittest.TestCase):
+
+ TIMEOUT = 10.0
+
+ def setUp(self):
+ socket.setdefaulttimeout(self.TIMEOUT)
+
+ def tearDown(self):
+ socket.setdefaulttimeout(None)
+
+ def testURLread(self):
+ f = urllib2.urlopen("http://www.python.org/")
+ x = f.read()
+
+def test_main():
+ test_support.requires('network')
+
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(URLTimeoutTest))
+ test_support.run_suite(suite)
+
+if __name__ == "__main__":
+ test_main()
Subsumed the times() function into repeat().
Added chain() and cycle().
+- The socket module now always uses the _socketobject wrapper class, even on
+ platforms which have dup(2). The makefile() method is built directly
+ on top of the socket without duplicating the file descriptor, allowing
+ timeouts to work properly.
+
Library
-------