mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-10 09:35:34 +00:00
Determine proxy based on path
This commit is contained in:
committed by
Samuel Fekete
parent
236dc1f4f2
commit
fc95e34bd4
@@ -36,16 +36,6 @@ class VCRFakeSocket(object):
|
|||||||
"""
|
"""
|
||||||
return 0 # wonder how bad this is....
|
return 0 # wonder how bad this is....
|
||||||
|
|
||||||
def __nonzero__(self):
|
|
||||||
"""This is hacky too.
|
|
||||||
|
|
||||||
urllib3 checks if sock is truthy before calling
|
|
||||||
set_tunnel (urllib3/connectionpool.py#L592).
|
|
||||||
If it is true, it never sets the tunnel and this
|
|
||||||
breaks proxy requests.
|
|
||||||
"""
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
def parse_headers(header_list):
|
def parse_headers(header_list):
|
||||||
"""
|
"""
|
||||||
@@ -140,15 +130,18 @@ class VCRConnection(object):
|
|||||||
"""
|
"""
|
||||||
Returns empty string for the default port and ':port' otherwise
|
Returns empty string for the default port and ':port' otherwise
|
||||||
"""
|
"""
|
||||||
port = self._tunnel_port or self.real_connection.port
|
port = self.real_connection.port
|
||||||
default_port = {'https': 443, 'http': 80}[self._protocol]
|
default_port = {'https': 443, 'http': 80}[self._protocol]
|
||||||
return ':{}'.format(port) if port != default_port else ''
|
return ':{}'.format(port) if port != default_port else ''
|
||||||
|
|
||||||
def _uri(self, url):
|
def _uri(self, url):
|
||||||
"""Returns request absolute URI"""
|
"""Returns request absolute URI"""
|
||||||
uri = "{}://{}{}{}".format(
|
if not url.startswith('/'):
|
||||||
|
# Then this must be a proxy request.
|
||||||
|
return url
|
||||||
|
uri = "{0}://{1}{2}{3}".format(
|
||||||
self._protocol,
|
self._protocol,
|
||||||
self._tunnel_host or self.real_connection.host,
|
self.real_connection.host,
|
||||||
self._port_postfix(),
|
self._port_postfix(),
|
||||||
url,
|
url,
|
||||||
)
|
)
|
||||||
@@ -158,7 +151,7 @@ class VCRConnection(object):
|
|||||||
"""Returns request selector url from absolute URI"""
|
"""Returns request selector url from absolute URI"""
|
||||||
prefix = "{}://{}{}".format(
|
prefix = "{}://{}{}".format(
|
||||||
self._protocol,
|
self._protocol,
|
||||||
self._tunnel_host or self.real_connection.host,
|
self.real_connection.host,
|
||||||
self._port_postfix(),
|
self._port_postfix(),
|
||||||
)
|
)
|
||||||
return uri.replace(prefix, '', 1)
|
return uri.replace(prefix, '', 1)
|
||||||
@@ -323,9 +316,6 @@ class VCRConnection(object):
|
|||||||
with force_reset():
|
with force_reset():
|
||||||
self.real_connection = self._baseclass(*args, **kwargs)
|
self.real_connection = self._baseclass(*args, **kwargs)
|
||||||
|
|
||||||
self._tunnel_host = None
|
|
||||||
self._tunnel_port = None
|
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
"""
|
"""
|
||||||
We need to define this because any attributes that are set on the
|
We need to define this because any attributes that are set on the
|
||||||
|
|||||||
Reference in New Issue
Block a user