python-requests/pr_5251-pytest5.patch
2019-11-01 08:23:28 +00:00

95 lines
3.8 KiB
Diff

From 9da8a963868c1019fb02691c54c493ca1549e6bb Mon Sep 17 00:00:00 2001
From: John Vandenberg <jayvdb@gmail.com>
Date: Fri, 1 Nov 2019 14:04:43 +0700
Subject: [PATCH 1/2] test_requests: Support pytest assert rewriting
The real exception has moved to e.value, when pytest
wraps the exception, however it wasnt wrapped in one
case for pytest 3, so add backwards compatibility.
---
tests/test_requests.py | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/tests/test_requests.py b/tests/test_requests.py
index 7d4a4eb51..75366d10b 100644
--- a/tests/test_requests.py
+++ b/tests/test_requests.py
@@ -1692,7 +1692,7 @@ def __iter__(self):
with pytest.raises(UnrewindableBodyError) as e:
requests.utils.rewind_body(prep)
- assert 'Unable to rewind request body' in str(e)
+ assert 'Unable to rewind request body' in str(e.value)
def test_rewind_body_failed_seek(self):
class BadFileObj:
@@ -1715,7 +1715,7 @@ def __iter__(self):
with pytest.raises(UnrewindableBodyError) as e:
requests.utils.rewind_body(prep)
- assert 'error occurred when rewinding request body' in str(e)
+ assert 'error occurred when rewinding request body' in str(e.value)
def test_rewind_body_failed_tell(self):
class BadFileObj:
@@ -1735,7 +1735,7 @@ def __iter__(self):
with pytest.raises(UnrewindableBodyError) as e:
requests.utils.rewind_body(prep)
- assert 'Unable to rewind request body' in str(e)
+ assert 'Unable to rewind request body' in str(e.value)
def _patch_adapter_gzipped_redirect(self, session, url):
adapter = session.get_adapter(url=url)
@@ -2155,7 +2155,7 @@ def test_stream_timeout(self, httpbin):
def test_invalid_timeout(self, httpbin, timeout, error_text):
with pytest.raises(ValueError) as e:
requests.get(httpbin('get'), timeout=timeout)
- assert error_text in str(e)
+ assert error_text in str(e.value)
@pytest.mark.parametrize(
'timeout', (
@@ -2374,7 +2374,9 @@ def test_urllib3_pool_connection_closed(httpbin):
try:
s.get(httpbin('status/200'))
except ConnectionError as e:
- assert u"Pool is closed." in str(e)
+ # pytest only sometimes wraps this exception
+ real_exception = e.value if hasattr(e, 'value') else e
+ assert u"Pool is closed." in str(real_exception)
class TestPreparingURLs(object):
From 119735dfef516ae33c89a9230653f91968444aa9 Mon Sep 17 00:00:00 2001
From: John Vandenberg <jayvdb@gmail.com>
Date: Fri, 1 Nov 2019 13:16:34 +0700
Subject: [PATCH 2/2] test_conflicting_post_params: Update pytest.raises
Move logic out of string passed to pytest.raises, into
the context of pytest.raises, as pytest no longer
supports pytest.raises execution of strings.
---
tests/test_requests.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tests/test_requests.py b/tests/test_requests.py
index 75366d10b..9554f39af 100644
--- a/tests/test_requests.py
+++ b/tests/test_requests.py
@@ -774,8 +774,11 @@ def __len__(self):
def test_conflicting_post_params(self, httpbin):
url = httpbin('post')
with open('Pipfile') as f:
- pytest.raises(ValueError, "requests.post(url, data='[{\"some\": \"data\"}]', files={'some': f})")
- pytest.raises(ValueError, "requests.post(url, data=u('[{\"some\": \"data\"}]'), files={'some': f})")
+ with pytest.raises(ValueError):
+ requests.post(url, data='[{\"some\": \"data\"}]', files={'some': f})
+
+ with pytest.raises(ValueError):
+ requests.post(url, data=u('[{\"some\": \"data\"}]'), files={'some': f})
def test_request_ok_set(self, httpbin):
r = requests.get(httpbin('status', '404'))