1
0
mirror of https://github.com/kevin1024/vcrpy.git synced 2025-12-09 01:03:24 +00:00

Fix requests stub. Closes #94

This commit is contained in:
Kevin McCarthy
2014-09-01 15:18:30 -10:00
parent 9a1147196a
commit cd715f37c6
4 changed files with 65 additions and 7 deletions

View File

@@ -7,6 +7,7 @@ env:
matrix: matrix:
- WITH_LIB="requests2.2" - WITH_LIB="requests2.2"
- WITH_LIB="requests2.3" - WITH_LIB="requests2.3"
- WITH_LIB="requests2.4"
- WITH_LIB="requests1.x" - WITH_LIB="requests1.x"
- WITH_LIB="httplib2" - WITH_LIB="httplib2"
- WITH_LIB="boto" - WITH_LIB="boto"
@@ -31,6 +32,7 @@ install:
- if [ $WITH_LIB = "requests1.x" ] ; then pip install requests==1.2.3; fi - if [ $WITH_LIB = "requests1.x" ] ; then pip install requests==1.2.3; fi
- if [ $WITH_LIB = "requests2.2" ] ; then pip install requests==2.2.1; fi - if [ $WITH_LIB = "requests2.2" ] ; then pip install requests==2.2.1; fi
- if [ $WITH_LIB = "requests2.3" ] ; then pip install requests==2.3.0; fi - if [ $WITH_LIB = "requests2.3" ] ; then pip install requests==2.3.0; fi
- if [ $WITH_LIB = "requests2.4" ] ; then pip install requests==2.4.0; fi
- if [ $WITH_LIB = "httplib2" ] ; then pip install httplib2; fi - if [ $WITH_LIB = "httplib2" ] ; then pip install httplib2; fi
- if [ $WITH_LIB = "boto" ] ; then pip install boto; fi - if [ $WITH_LIB = "boto" ] ; then pip install boto; fi
script: python setup.py test script: python setup.py test

50
tox.ini
View File

@@ -10,6 +10,10 @@ envlist =
py33, py33,
py34, py34,
pypy, pypy,
py26requests24,
py27requests24,
py34requests24,
pypyrequests24,
py26requests23, py26requests23,
py27requests23, py27requests23,
py34requests23, py34requests23,
@@ -73,6 +77,52 @@ deps =
PyYAML PyYAML
requests==1.2.3 requests==1.2.3
[testenv:py26requests24]
basepython = python2.6
deps =
mock
pytest
pytest-localserver
PyYAML
requests==2.4.0
[testenv:py27requests24]
basepython = python2.7
deps =
mock
pytest
pytest-localserver
PyYAML
requests==2.4.0
[testenv:py33requests24]
basepython = python3.4
deps =
mock
pytest
pytest-localserver
PyYAML
requests==2.4.0
[testenv:py34requests24]
basepython = python3.4
deps =
mock
pytest
pytest-localserver
PyYAML
requests==2.4.0
[testenv:pypyrequests24]
basepython = pypy
deps =
mock
pytest
pytest-localserver
PyYAML
requests==2.4.0
[testenv:py26requests23] [testenv:py26requests23]
basepython = python2.6 basepython = python2.6
deps = deps =

View File

@@ -56,15 +56,16 @@ def install(cassette):
# patch requests v1.x # patch requests v1.x
try: try:
import requests.packages.urllib3.connectionpool as cpool import requests.packages.urllib3.connectionpool as cpool
from .stubs.requests_stubs import VCRVerifiedHTTPSConnection from .stubs.requests_stubs import VCRRequestsHTTPConnection, VCRRequestsHTTPSConnection
cpool.VerifiedHTTPSConnection = VCRVerifiedHTTPSConnection cpool.VerifiedHTTPSConnection = VCRRequestsHTTPSConnection
cpool.HTTPConnection = VCRRequestsHTTPConnection
cpool.VerifiedHTTPSConnection.cassette = cassette cpool.VerifiedHTTPSConnection.cassette = cassette
cpool.HTTPConnection = VCRHTTPConnection cpool.HTTPConnection = VCRHTTPConnection
cpool.HTTPConnection.cassette = cassette cpool.HTTPConnection.cassette = cassette
# patch requests v2.x # patch requests v2.x
cpool.HTTPConnectionPool.ConnectionCls = VCRHTTPConnection cpool.HTTPConnectionPool.ConnectionCls = VCRRequestsHTTPConnection
cpool.HTTPConnectionPool.cassette = cassette cpool.HTTPConnectionPool.cassette = cassette
cpool.HTTPSConnectionPool.ConnectionCls = VCRHTTPSConnection cpool.HTTPSConnectionPool.ConnectionCls = VCRRequestsHTTPSConnection
cpool.HTTPSConnectionPool.cassette = cassette cpool.HTTPSConnectionPool.cassette = cassette
except ImportError: # pragma: no cover except ImportError: # pragma: no cover
pass pass

View File

@@ -1,8 +1,13 @@
'''Stubs for requests''' '''Stubs for requests'''
from requests.packages.urllib3.connectionpool import VerifiedHTTPSConnection from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
from ..stubs import VCRHTTPSConnection from ..stubs import VCRHTTPConnection, VCRHTTPSConnection
# urllib3 defines its own HTTPConnection classes, which requests goes ahead and assumes
# you're using. It includes some polyfills for newer features missing in older pythons.
class VCRVerifiedHTTPSConnection(VCRHTTPSConnection, VerifiedHTTPSConnection): class VCRRequestsHTTPConnection(VCRHTTPConnection, HTTPConnection):
_baseclass = HTTPConnection
class VCRRequestsHTTPSConnection(VCRHTTPSConnection, VerifiedHTTPSConnection):
_baseclass = VerifiedHTTPSConnection _baseclass = VerifiedHTTPSConnection