diff options
author | Facundo Batista <facundobatista@gmail.com> | 2007-05-21 17:32:32 (GMT) |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2007-05-21 17:32:32 (GMT) |
commit | 70f996be24dd00c11500cd99d92e8b2a1dfaa501 (patch) | |
tree | b60861e73678368f2690057584e42faf1eaa41ef | |
parent | 767debb6aa5729e919da309ecc770f8b2d94beba (diff) | |
download | cpython-70f996be24dd00c11500cd99d92e8b2a1dfaa501.zip cpython-70f996be24dd00c11500cd99d92e8b2a1dfaa501.tar.gz cpython-70f996be24dd00c11500cd99d92e8b2a1dfaa501.tar.bz2 |
Added timeout support to HTTPSConnection, through the
socket.create_connection function. Also added a small
test for this, and updated NEWS file.
-rw-r--r-- | Lib/httplib.py | 7 | ||||
-rw-r--r-- | Lib/test/test_httplib.py | 10 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
3 files changed, 13 insertions, 6 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py index d420f46..badaf1a 100644 --- a/Lib/httplib.py +++ b/Lib/httplib.py @@ -1124,16 +1124,15 @@ class HTTPSConnection(HTTPConnection): default_port = HTTPS_PORT def __init__(self, host, port=None, key_file=None, cert_file=None, - strict=None): - HTTPConnection.__init__(self, host, port, strict) + strict=None, timeout=None): + HTTPConnection.__init__(self, host, port, strict, timeout) self.key_file = key_file self.cert_file = cert_file def connect(self): "Connect to a host on a given (SSL) port." - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sock.connect((self.host, self.port)) + sock = socket.create_connection((self.host, self.port), self.timeout) ssl = socket.ssl(sock, self.key_file, self.cert_file) self.sock = FakeSocket(sock, ssl) diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 035f0b9..9238eea 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -194,8 +194,16 @@ class TimeoutTest(TestCase): httpConn.close() +class HTTPSTimeoutTest(TestCase): +# XXX Here should be tests for HTTPS, there isn't any right now! + + def test_attributes(self): + # simple test to check it's storing it + h = httplib.HTTPSConnection(HOST, PORT, timeout=30) + self.assertEqual(h.timeout, 30) + def test_main(verbose=None): - test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest) + test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest, HTTPSTimeoutTest) if __name__ == '__main__': test_main() @@ -259,7 +259,7 @@ Library - Patch #1676823: Added create_connection() to socket.py, which may be called with a timeout, and use it from httplib (whose HTTPConnection - now accepts an optional timeout). + and HTTPSConnection now accept an optional timeout). - Bug #978833: Revert r50844, as it broke _socketobject.dup. |