"""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