61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
|
"""Stubs for httplib2"""
|
||
|
|
||
|
from httplib2 import HTTPConnectionWithTimeout, HTTPSConnectionWithTimeout
|
||
|
from ..stubs import VCRHTTPConnection, VCRHTTPSConnection
|
||
|
|
||
|
|
||
|
class VCRHTTPConnectionWithTimeout(VCRHTTPConnection, HTTPConnectionWithTimeout):
|
||
|
_baseclass = HTTPConnectionWithTimeout
|
||
|
|
||
|
def __init__(self, *args, **kwargs):
|
||
|
"""I overrode the init because I need to clean kwargs before calling
|
||
|
HTTPConnection.__init__."""
|
||
|
|
||
|
# Delete the keyword arguments that HTTPConnection would not recognize
|
||
|
safe_keys = {"host", "port", "strict", "timeout", "source_address"}
|
||
|
unknown_keys = set(kwargs.keys()) - safe_keys
|
||
|
safe_kwargs = kwargs.copy()
|
||
|
for kw in unknown_keys:
|
||
|
del safe_kwargs[kw]
|
||
|
|
||
|
self.proxy_info = kwargs.pop("proxy_info", None)
|
||
|
VCRHTTPConnection.__init__(self, *args, **safe_kwargs)
|
||
|
self.sock = self.real_connection.sock
|
||
|
|
||
|
|
||
|
class VCRHTTPSConnectionWithTimeout(VCRHTTPSConnection, HTTPSConnectionWithTimeout):
|
||
|
_baseclass = HTTPSConnectionWithTimeout
|
||
|
|
||
|
def __init__(self, *args, **kwargs):
|
||
|
|
||
|
# Delete the keyword arguments that HTTPSConnection would not recognize
|
||
|
safe_keys = {
|
||
|
"host",
|
||
|
"port",
|
||
|
"key_file",
|
||
|
"cert_file",
|
||
|
"strict",
|
||
|
"timeout",
|
||
|
"source_address",
|
||
|
"ca_certs",
|
||
|
"disable_ssl_certificate_validation",
|
||
|
}
|
||
|
unknown_keys = set(kwargs.keys()) - safe_keys
|
||
|
safe_kwargs = kwargs.copy()
|
||
|
for kw in unknown_keys:
|
||
|
del safe_kwargs[kw]
|
||
|
self.proxy_info = kwargs.pop("proxy_info", None)
|
||
|
if "ca_certs" not in kwargs or kwargs["ca_certs"] is None:
|
||
|
try:
|
||
|
import httplib2
|
||
|
|
||
|
self.ca_certs = httplib2.CA_CERTS
|
||
|
except ImportError:
|
||
|
self.ca_certs = None
|
||
|
else:
|
||
|
self.ca_certs = kwargs["ca_certs"]
|
||
|
|
||
|
self.disable_ssl_certificate_validation = kwargs.pop("disable_ssl_certificate_validation", None)
|
||
|
VCRHTTPSConnection.__init__(self, *args, **safe_kwargs)
|
||
|
self.sock = self.real_connection.sock
|