mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
Fix compat with requests 2.16 (unvendored urllib3)
The new version of requests un-vendors urllib3, with a nifty hack: https://github.com/kennethreitz/requests/blob/master/requests/packages.py Unfortunately messing directly with sys.modules causes some weird behavior that I don't entirely understand. Avoiding the extra import to requests.packages as part of VCR's initialization seems to sidestep the issue. Closes #311
This commit is contained in:
37
vcr/patch.py
37
vcr/patch.py
@@ -12,16 +12,6 @@ _HTTPConnection = httplib.HTTPConnection
|
|||||||
_HTTPSConnection = httplib.HTTPSConnection
|
_HTTPSConnection = httplib.HTTPSConnection
|
||||||
|
|
||||||
|
|
||||||
# Try to save the original types for requests
|
|
||||||
try:
|
|
||||||
import requests.packages.urllib3.connectionpool as cpool
|
|
||||||
except ImportError: # pragma: no cover
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
_VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection
|
|
||||||
_cpoolHTTPConnection = cpool.HTTPConnection
|
|
||||||
_cpoolHTTPSConnection = cpool.HTTPSConnection
|
|
||||||
|
|
||||||
# Try to save the original types for boto3
|
# Try to save the original types for boto3
|
||||||
try:
|
try:
|
||||||
import botocore.vendored.requests.packages.urllib3.connectionpool as cpool
|
import botocore.vendored.requests.packages.urllib3.connectionpool as cpool
|
||||||
@@ -32,14 +22,30 @@ else:
|
|||||||
_cpoolBoto3HTTPConnection = cpool.HTTPConnection
|
_cpoolBoto3HTTPConnection = cpool.HTTPConnection
|
||||||
_cpoolBoto3HTTPSConnection = cpool.HTTPSConnection
|
_cpoolBoto3HTTPSConnection = cpool.HTTPSConnection
|
||||||
|
|
||||||
|
cpool = None
|
||||||
# Try to save the original types for urllib3
|
# Try to save the original types for urllib3
|
||||||
try:
|
try:
|
||||||
import urllib3
|
import urllib3.connectionpool as cpool
|
||||||
except ImportError: # pragma: no cover
|
except ImportError: # pragma: no cover
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
_VerifiedHTTPSConnection = urllib3.connectionpool.VerifiedHTTPSConnection
|
_VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection
|
||||||
|
_cpoolHTTPConnection = cpool.HTTPConnection
|
||||||
|
_cpoolHTTPSConnection = cpool.HTTPSConnection
|
||||||
|
|
||||||
|
# Try to save the original types for requests
|
||||||
|
try:
|
||||||
|
if not cpool:
|
||||||
|
import requests.packages.urllib3.connectionpool as cpool
|
||||||
|
except ImportError: # pragma: no cover
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
_VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection
|
||||||
|
_cpoolHTTPConnection = cpool.HTTPConnection
|
||||||
|
_cpoolHTTPSConnection = cpool.HTTPSConnection
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Try to save the original types for httplib2
|
# Try to save the original types for httplib2
|
||||||
@@ -176,10 +182,9 @@ class CassettePatcherBuilder(object):
|
|||||||
|
|
||||||
def _requests(self):
|
def _requests(self):
|
||||||
try:
|
try:
|
||||||
import requests.packages.urllib3.connectionpool as cpool
|
from .stubs import requests_stubs
|
||||||
except ImportError: # pragma: no cover
|
except ImportError: # pragma: no cover
|
||||||
return ()
|
return ()
|
||||||
from .stubs import requests_stubs
|
|
||||||
return self._urllib3_patchers(cpool, requests_stubs)
|
return self._urllib3_patchers(cpool, requests_stubs)
|
||||||
|
|
||||||
def _boto3(self):
|
def _boto3(self):
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
'''Stubs for requests'''
|
'''Stubs for requests'''
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
|
|
||||||
except ImportError:
|
|
||||||
from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
|
from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
|
||||||
|
except ImportError:
|
||||||
|
from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
|
||||||
|
|
||||||
from ..stubs import VCRHTTPConnection, VCRHTTPSConnection
|
from ..stubs import VCRHTTPConnection, VCRHTTPSConnection
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user