1
0
mirror of https://github.com/kevin1024/vcrpy.git synced 2025-12-08 16:53:23 +00:00

Add basic support for urllib3

This commit is contained in:
Kevin McCarthy
2012-10-11 15:44:17 -10:00
parent 2e3a129669
commit 6af873eeb2
2 changed files with 33 additions and 0 deletions

View File

@@ -12,12 +12,20 @@ try:
except ImportError:
pass
try:
import urllib3
_VerifiedHTTPSConnection = urllib3.connectionpool.VerifiedHTTPSConnection
except ImportError:
pass
def install(cassette_path):
httplib.HTTPConnection = httplib.HTTP._connection_class = VCRHTTPConnection
httplib.HTTPSConnection = httplib.HTTPS._connection_class = VCRHTTPSConnection
httplib.HTTPConnection._vcr_cassette_path = cassette_path
httplib.HTTPSConnection._vcr_cassette_path = cassette_path
#patch requests
try:
import requests.packages.urllib3.connectionpool
from .requests_stubs import VCRVerifiedHTTPSConnection
@@ -26,6 +34,17 @@ def install(cassette_path):
except ImportError:
pass
#patch urllib3
try:
import urllib3.connectionpool
from .urllib3_stubs import VCRVerifiedHTTPSConnection
urllib3.connectionpool.VerifiedHTTPSConnection = VCRVerifiedHTTPSConnection
urllib3.connectionpool.VerifiedHTTPSConnection._vcr_cassette_path = cassette_path
urllib3.connectionpool.HTTPConnection = VCRHTTPConnection
urllib3.connectionpool.HTTPConnection._vcr_cassette_path = cassette_path
except ImportError:
pass
def reset():
httplib.HTTPConnection = httplib.HTTP._connection_class = _HTTPConnection
@@ -37,6 +56,13 @@ def reset():
except ImportError:
pass
try:
import urllib3.connectionpool
urllib3.connectionpool.VerifiedHTTPSConnection = _VerifiedHTTPSConnection
urllib3.connectionpool.HTTPConnection = _HTTPConnection
except ImportError:
pass
@contextmanager
def use_cassette(cassette_path):

7
vcr/urllib3_stubs.py Normal file
View File

@@ -0,0 +1,7 @@
from urllib3.connectionpool import VerifiedHTTPSConnection
from .stubs import VCRHTTPSConnection
class VCRVerifiedHTTPSConnection(VCRHTTPSConnection, VerifiedHTTPSConnection):
_baseclass = VerifiedHTTPSConnection