import os
import socket
+import collections
from datetime import datetime
from io import BytesIO
def register_hook(self, event, hook):
"""Properly register a hook."""
- if callable(hook):
+ if isinstance(hook, collections.Callable):
self.hooks[event].append(hook)
elif hasattr(hook, '__iter__'):
- self.hooks[event].extend(h for h in hook if callable(h))
+ self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable))
def deregister_hook(self, event, hook):
"""Deregister a previously registered hook.
import unittest
import pickle
import tempfile
+import collections
import requests
from requests.compat import str, StringIO
def assert_hooks_are_callable(hooks):
for h in hooks['args']:
- self.assertTrue(callable(h))
+ self.assertTrue(isinstance(h, collections.Callable))
hooks = [add_foo_header, add_bar_header]
r = requests.models.Request()