Add timeout to stream with testing
authorcjstapleton <chelsea.j.stapleton@gmail.com>
Fri, 28 Feb 2014 16:08:57 +0000 (10:08 -0600)
committercjstapleton <chelsea.j.stapleton@gmail.com>
Fri, 28 Feb 2014 16:08:57 +0000 (10:08 -0600)
Fixes Issue #1803

requests/adapters.py
test_requests.py

index ca462232c8f4c402a58d3c1908809a65a0b2838c..28bea07c2ac3019072348d243d1e303d320fb2b7 100644 (file)
@@ -310,10 +310,7 @@ class HTTPAdapter(BaseAdapter):
 
         chunked = not (request.body is None or 'Content-Length' in request.headers)
 
-        if stream:
-            timeout = TimeoutSauce(connect=timeout)
-        else:
-            timeout = TimeoutSauce(connect=timeout, read=timeout)
+        timeout = TimeoutSauce(connect=timeout, read=timeout)
 
         try:
             if not chunked:
index 3d7cdaaf78fd81f3dbf2d42fa6cf3761b1a0514e..0fe849d40c8dbf315ada07e5cd9a399f83dbfb9b 100755 (executable)
@@ -1170,6 +1170,15 @@ class TestMorselToCookieMaxAge(unittest.TestCase):
         with pytest.raises(TypeError):
             morsel_to_cookie(morsel)
 
+class TestTimeout:
+    def test_stream_timeout(self):
+        try:
+            r = requests.get('https://httpbin.org/delay/10', timeout=5.0)
+        except requests.exceptions.Timeout as e:
+            assert 'Read timed out' in e.args[0].args[0]
+
 
 if __name__ == '__main__':
     unittest.main()
+
+