Commit 70f996be authored by Facundo Batista's avatar Facundo Batista

Added timeout support to HTTPSConnection, through the

socket.create_connection function. Also added a small
test for this, and updated NEWS file.
parent 767debb6
...@@ -1124,16 +1124,15 @@ class HTTPSConnection(HTTPConnection): ...@@ -1124,16 +1124,15 @@ class HTTPSConnection(HTTPConnection):
default_port = HTTPS_PORT default_port = HTTPS_PORT
def __init__(self, host, port=None, key_file=None, cert_file=None, def __init__(self, host, port=None, key_file=None, cert_file=None,
strict=None): strict=None, timeout=None):
HTTPConnection.__init__(self, host, port, strict) HTTPConnection.__init__(self, host, port, strict, timeout)
self.key_file = key_file self.key_file = key_file
self.cert_file = cert_file self.cert_file = cert_file
def connect(self): def connect(self):
"Connect to a host on a given (SSL) port." "Connect to a host on a given (SSL) port."
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.create_connection((self.host, self.port), self.timeout)
sock.connect((self.host, self.port))
ssl = socket.ssl(sock, self.key_file, self.cert_file) ssl = socket.ssl(sock, self.key_file, self.cert_file)
self.sock = FakeSocket(sock, ssl) self.sock = FakeSocket(sock, ssl)
......
...@@ -194,8 +194,16 @@ class TimeoutTest(TestCase): ...@@ -194,8 +194,16 @@ class TimeoutTest(TestCase):
httpConn.close() 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): 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__': if __name__ == '__main__':
test_main() test_main()
...@@ -259,7 +259,7 @@ Library ...@@ -259,7 +259,7 @@ Library
- Patch #1676823: Added create_connection() to socket.py, which may be - Patch #1676823: Added create_connection() to socket.py, which may be
called with a timeout, and use it from httplib (whose HTTPConnection 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. - Bug #978833: Revert r50844, as it broke _socketobject.dup.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment