mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-10 17:45:35 +00:00
test that works behind proxy
This commit is contained in:
committed by
Kevin McCarthy
parent
936feb7748
commit
04b7f4fc65
@@ -0,0 +1,33 @@
|
|||||||
|
interactions:
|
||||||
|
- request:
|
||||||
|
body: ''
|
||||||
|
headers:
|
||||||
|
accept:
|
||||||
|
- '*/*'
|
||||||
|
accept-encoding:
|
||||||
|
- gzip, deflate, br
|
||||||
|
connection:
|
||||||
|
- keep-alive
|
||||||
|
host:
|
||||||
|
- httpbin.org
|
||||||
|
user-agent:
|
||||||
|
- python-httpx/0.12.1
|
||||||
|
method: GET
|
||||||
|
uri: https://httpbin.org/headers
|
||||||
|
response:
|
||||||
|
content: "{\n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\"\
|
||||||
|
: \"gzip, deflate, br\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\"\
|
||||||
|
: \"python-httpx/0.12.1\", \n \"X-Amzn-Trace-Id\": \"Root=1-5ea778c9-ea76170da792abdbf7614067\"\
|
||||||
|
\n }\n}\n"
|
||||||
|
headers:
|
||||||
|
access-control-allow-credentials: 'true'
|
||||||
|
access-control-allow-origin: '*'
|
||||||
|
connection: keep-alive
|
||||||
|
content-length: '226'
|
||||||
|
content-type: application/json
|
||||||
|
date: Tue, 28 Apr 2020 00:28:57 GMT
|
||||||
|
server: gunicorn/19.9.0
|
||||||
|
via: my_own_proxy
|
||||||
|
http_version: HTTP/1.1
|
||||||
|
status_code: 200
|
||||||
|
version: 1
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
interactions:
|
||||||
|
- request:
|
||||||
|
body: null
|
||||||
|
headers:
|
||||||
|
accept:
|
||||||
|
- '*/*'
|
||||||
|
accept-encoding:
|
||||||
|
- gzip, deflate, br
|
||||||
|
connection:
|
||||||
|
- keep-alive
|
||||||
|
host:
|
||||||
|
- httpbin.org
|
||||||
|
user-agent:
|
||||||
|
- python-httpx/0.12.1
|
||||||
|
method: GET
|
||||||
|
uri: https://localhost:8080/headers
|
||||||
|
response:
|
||||||
|
body:
|
||||||
|
string: "{\n \"headers\": {\n \"Accept\": \"*/*\", \n \"Accept-Encoding\"\
|
||||||
|
: \"gzip, deflate, br\", \n \"Host\": \"httpbin.org\", \n \"User-Agent\"\
|
||||||
|
: \"python-httpx/0.12.1\", \n \"X-Amzn-Trace-Id\": \"Root=1-5ea778ca-c402f3ae901e78b3435b0a0c\"\
|
||||||
|
\n }\n}\n"
|
||||||
|
headers:
|
||||||
|
Access-Control-Allow-Credentials:
|
||||||
|
- 'true'
|
||||||
|
Access-Control-Allow-Origin:
|
||||||
|
- '*'
|
||||||
|
Connection:
|
||||||
|
- keep-alive
|
||||||
|
Content-Length:
|
||||||
|
- '226'
|
||||||
|
Content-Type:
|
||||||
|
- application/json
|
||||||
|
Date:
|
||||||
|
- Tue, 28 Apr 2020 00:28:58 GMT
|
||||||
|
Server:
|
||||||
|
- gunicorn/19.9.0
|
||||||
|
Via:
|
||||||
|
- my_own_proxy
|
||||||
|
status:
|
||||||
|
code: 200
|
||||||
|
message: OK
|
||||||
|
version: 1
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
import pytest
|
import pytest
|
||||||
import contextlib
|
import contextlib
|
||||||
|
import os
|
||||||
import vcr # noqa: E402
|
import vcr # noqa: E402
|
||||||
|
|
||||||
from vcr.stubs.httpx_stubs import _get_next_url
|
from vcr.stubs.httpx_stubs import _get_next_url
|
||||||
@@ -186,3 +187,27 @@ class TestGetNextUrl:
|
|||||||
response.url = "http://github.com/"
|
response.url = "http://github.com/"
|
||||||
response.headers = {}
|
response.headers = {}
|
||||||
assert _get_next_url(response) is None
|
assert _get_next_url(response) is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_behind_proxy(do_request):
|
||||||
|
# This is recorded because otherwise we should have a live proxy somewhere.
|
||||||
|
yml = (
|
||||||
|
os.path.dirname(os.path.realpath(__file__))
|
||||||
|
+ "/cassettes/"
|
||||||
|
+ do_request.__name__
|
||||||
|
+ "test_httpx_test_test_behind_proxy.yml"
|
||||||
|
)
|
||||||
|
url = "https://httpbin.org/headers"
|
||||||
|
proxy = "http://localhost:8080"
|
||||||
|
proxies = {"http": proxy, "https": proxy}
|
||||||
|
|
||||||
|
with vcr.use_cassette(yml):
|
||||||
|
response = do_request(proxies=proxies, verify=False)("GET", url)
|
||||||
|
|
||||||
|
with vcr.use_cassette(yml) as cassette:
|
||||||
|
cassette_response = do_request(proxies=proxies, verify=False)("GET", url)
|
||||||
|
cassette_response.request.url == url
|
||||||
|
assert cassette.play_count == 1
|
||||||
|
|
||||||
|
assert cassette_response.headers["Via"] == "my_own_proxy", str(cassette_response.headers)
|
||||||
|
assert cassette_response.request.url == response.request.url
|
||||||
|
|||||||
@@ -68,7 +68,11 @@ def _record_responses(cassette, vcr_request, real_response):
|
|||||||
past_vcr_request = _make_vcr_request(past_real_response.request)
|
past_vcr_request = _make_vcr_request(past_real_response.request)
|
||||||
cassette.append(past_vcr_request, _to_serialized_response(past_real_response))
|
cassette.append(past_vcr_request, _to_serialized_response(past_real_response))
|
||||||
|
|
||||||
vcr_request = _make_vcr_request(real_response.request)
|
if real_response.history:
|
||||||
|
# If there was a redirection keep we want the request which will hold the
|
||||||
|
# final redirect value
|
||||||
|
vcr_request = _make_vcr_request(real_response.request)
|
||||||
|
|
||||||
cassette.append(vcr_request, _to_serialized_response(real_response))
|
cassette.append(vcr_request, _to_serialized_response(real_response))
|
||||||
return real_response
|
return real_response
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user