Add tests around hook behaviour
authorIan Cordasco <graffatcolmingov@gmail.com>
Tue, 8 Oct 2013 02:17:46 +0000 (21:17 -0500)
committerIan Cordasco <graffatcolmingov@gmail.com>
Tue, 8 Oct 2013 02:17:46 +0000 (21:17 -0500)
test_requests.py

index d1e6ed0a4f091c4cbe3ffd665af343f61ab25005..0b6dddc81864a943594ef6ed31c55b7cdae86626 100755 (executable)
@@ -449,6 +449,25 @@ class RequestsTestCase(unittest.TestCase):
 
         requests.Request('GET', HTTPBIN, hooks={'response': hook})
 
+    def test_session_hooks_are_used_with_no_request_hooks(self):
+        hook = lambda x, *args, **kwargs: x
+        s = requests.Session()
+        s.hooks['response'].append(hook)
+        r = requests.Request('GET', HTTPBIN)
+        prep = s.prepare_request(r)
+        assert prep.hooks['response'] != []
+        assert prep.hooks['response'] == [hook]
+
+    def test_session_hooks_are_overriden_by_request_hooks(self):
+        hook1 = lambda x, *args, **kwargs: x
+        hook2 = lambda x, *args, **kwargs: x
+        assert hook1 is not hook2
+        s = requests.Session()
+        s.hooks['response'].append(hook2)
+        r = requests.Request('GET', HTTPBIN, hooks={'response': [hook1]})
+        prep = s.prepare_request(r)
+        assert prep.hooks['response'] == [hook1]
+
     def test_prepared_request_hook(self):
         def hook(resp, **kwargs):
             resp.hook_working = True