diff options
author | Facundo Batista <facundobatista@gmail.com> | 2007-03-23 18:54:07 (GMT) |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2007-03-23 18:54:07 (GMT) |
commit | 07c78be0b4723deb62acebab50888cc59b1e4eb2 (patch) | |
tree | 0d1da08d12eafe4ac485889e1aac891e035c0696 /Lib/test/test_httplib.py | |
parent | f102e24bd34442026f4200a298a8b08d1deb3616 (diff) | |
download | cpython-07c78be0b4723deb62acebab50888cc59b1e4eb2.zip cpython-07c78be0b4723deb62acebab50888cc59b1e4eb2.tar.gz cpython-07c78be0b4723deb62acebab50888cc59b1e4eb2.tar.bz2 |
Added a 'create_connect()' function to socket.py, which creates a
connection with an optional timeout, and modified httplib.py to
use this function in HTTPConnection. Applies patch 1676823.
Diffstat (limited to 'Lib/test/test_httplib.py')
-rw-r--r-- | Lib/test/test_httplib.py | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index 90a4e55..a39a3eb 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -1,6 +1,7 @@ import httplib import StringIO import sys +import socket from unittest import TestCase @@ -149,8 +150,47 @@ class OfflineTest(TestCase): def test_responses(self): self.assertEquals(httplib.responses[httplib.NOT_FOUND], "Not Found") +PORT = 50003 +HOST = "localhost" + +class TimeoutTest(TestCase): + + def setUp(self): + self.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + global PORT + PORT = test_support.bind_port(self.serv, HOST, PORT) + self.serv.listen(1) + + def tearDown(self): + self.serv.close() + self.serv = None + + def testTimeoutAttribute(self): + '''This will prove that the timeout gets through + HTTPConnection and into the socket. + ''' + # default + httpConn = httplib.HTTPConnection(HOST, PORT) + httpConn.connect() + self.assertTrue(httpConn.sock.gettimeout() is None) + + # a value + httpConn = httplib.HTTPConnection(HOST, PORT, timeout=10) + httpConn.connect() + self.assertEqual(httpConn.sock.gettimeout(), 10) + + # None, having other default + previous = socket.getdefaulttimeout() + socket.setdefaulttimeout(10) + httpConn = httplib.HTTPConnection(HOST, PORT, timeout=None) + httpConn.connect() + socket.setdefaulttimeout(previous) + self.assertEqual(httpConn.sock.gettimeout(), 10) + + def test_main(verbose=None): - test_support.run_unittest(HeaderTests, OfflineTest, BasicTest) + test_support.run_unittest(HeaderTests, OfflineTest, BasicTest, TimeoutTest) if __name__ == '__main__': test_main() |