Skip to content

Commit

Permalink
Drop support for requests <2.16.2
Browse files Browse the repository at this point in the history
  • Loading branch information
hartwork committed May 15, 2023
1 parent 24af48d commit 31c8dc0
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 39 deletions.
42 changes: 7 additions & 35 deletions vcr/patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,16 @@

# Try to save the original types for requests
try:
if not cpool:
import requests.packages.urllib3.connectionpool as cpool
import requests
except ImportError: # pragma: no cover
pass
else:
_VerifiedHTTPSConnection = cpool.VerifiedHTTPSConnection
_cpoolHTTPConnection = cpool.HTTPConnection
_cpoolHTTPSConnection = cpool.HTTPSConnection
if requests.__build__ < 0x021602:
raise RuntimeError(
"vcrpy >=4.2.2 and requests <2.16.2 are not compatible"
"; please upgrade requests (or downgrade vcrpy)"
)


# Try to save the original types for httplib2
try:
Expand Down Expand Up @@ -407,36 +409,6 @@ def reset_patchers():
yield mock.patch.object(httplib, "HTTPConnection", _HTTPConnection)
yield mock.patch.object(httplib, "HTTPSConnection", _HTTPSConnection)

try:
import requests

if requests.__build__ < 0x021603:
# Avoid double unmock if requests 2.16.3
# First, this is pointless, requests.packages.urllib3 *IS* urllib3 (see packages.py)
# Second, this is unmocking twice the same classes with different namespaces
# and is creating weird issues and bugs:
# > AssertionError: assert <class 'urllib3.connection.HTTPConnection'>
# > is <class 'requests.packages.urllib3.connection.HTTPConnection'>
# This assert should work!!!
# Note that this also means that now, requests.packages is never imported
# if requests 2.16.3 or greater is used with VCRPy.
import requests.packages.urllib3.connectionpool as cpool
else:
raise ImportError("Skip requests not vendored anymore")
except ImportError: # pragma: no cover
pass
else:
# unpatch requests v1.x
yield mock.patch.object(cpool, "VerifiedHTTPSConnection", _VerifiedHTTPSConnection)
yield mock.patch.object(cpool, "HTTPConnection", _cpoolHTTPConnection)
# unpatch requests v2.x
if hasattr(cpool.HTTPConnectionPool, "ConnectionCls"):
yield mock.patch.object(cpool.HTTPConnectionPool, "ConnectionCls", _cpoolHTTPConnection)
yield mock.patch.object(cpool.HTTPSConnectionPool, "ConnectionCls", _cpoolHTTPSConnection)

if hasattr(cpool, "HTTPSConnection"):
yield mock.patch.object(cpool, "HTTPSConnection", _cpoolHTTPSConnection)

try:
import urllib3.connectionpool as cpool
except ImportError: # pragma: no cover
Expand Down
5 changes: 1 addition & 4 deletions vcr/stubs/requests_stubs.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
"""Stubs for requests"""

try:
from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
except ImportError:
from requests.packages.urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection
from urllib3.connectionpool import HTTPConnection, VerifiedHTTPSConnection

from ..stubs import VCRHTTPConnection, VCRHTTPSConnection

Expand Down

0 comments on commit 31c8dc0

Please sign in to comment.