mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 01:03:24 +00:00
@@ -7,6 +7,7 @@ Changelog
|
|||||||
- Fix exception when body is empty (@keithprickett)
|
- Fix exception when body is empty (@keithprickett)
|
||||||
- Add `pytest-recording` to the documentation as an alternative Pytest plugin (@Stranger6667)
|
- Add `pytest-recording` to the documentation as an alternative Pytest plugin (@Stranger6667)
|
||||||
- Fix yarl and python3.5 version issue (@neozenith)
|
- Fix yarl and python3.5 version issue (@neozenith)
|
||||||
|
- Fix header matcher for boto3 - fixes #474 (@simahawk)
|
||||||
- 2.1.0 - Add a `rewind` method to reset a cassette (thanks @khamidou)
|
- 2.1.0 - Add a `rewind` method to reset a cassette (thanks @khamidou)
|
||||||
New error message with more details on why the cassette failed to play a request (thanks @arthurHamon2, @neozenith)
|
New error message with more details on why the cassette failed to play a request (thanks @arthurHamon2, @neozenith)
|
||||||
Handle connect tunnel URI (thanks @jeking3)
|
Handle connect tunnel URI (thanks @jeking3)
|
||||||
|
|||||||
@@ -54,6 +54,16 @@ req2_body = (
|
|||||||
b"<member><name>a</name><value><string>1</string></value></member>"
|
b"<member><name>a</name><value><string>1</string></value></member>"
|
||||||
b"</struct></value></data></array></value></param></params></methodCall>"
|
b"</struct></value></data></array></value></param></params></methodCall>"
|
||||||
)
|
)
|
||||||
|
boto3_bytes_headers = {
|
||||||
|
"X-Amz-Content-SHA256": b"UNSIGNED-PAYLOAD",
|
||||||
|
"Cache-Control": b"max-age=31536000, public",
|
||||||
|
"X-Amz-Date": b"20191102T143910Z",
|
||||||
|
"User-Agent": b"Boto3/1.9.102 Python/3.5.3 Linux/4.15.0-54-generic Botocore/1.12.253 Resource",
|
||||||
|
"Content-MD5": b"GQqjEXsRqrPyxfTl99nkAg==",
|
||||||
|
"Content-Type": b"text/plain",
|
||||||
|
"Expect": b"100-continue",
|
||||||
|
"Content-Length": "21",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -110,6 +120,11 @@ req2_body = (
|
|||||||
"POST", "http://host.com/", '{"b": 2, "a": 1}', {"content-type": "application/json"}
|
"POST", "http://host.com/", '{"b": 2, "a": 1}', {"content-type": "application/json"}
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
# special case for boto3 bytes headers
|
||||||
|
request.Request("POST", "http://aws.custom.com/", b"123", boto3_bytes_headers),
|
||||||
|
request.Request("POST", "http://aws.custom.com/", b"123", boto3_bytes_headers),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_body_matcher_does_match(r1, r2):
|
def test_body_matcher_does_match(r1, r2):
|
||||||
|
|||||||
@@ -53,7 +53,10 @@ def headers(r1, r2):
|
|||||||
|
|
||||||
def _header_checker(value, header="Content-Type"):
|
def _header_checker(value, header="Content-Type"):
|
||||||
def checker(headers):
|
def checker(headers):
|
||||||
return value in headers.get(header, "").lower()
|
_header = headers.get(header, "")
|
||||||
|
if isinstance(_header, bytes):
|
||||||
|
_header = _header.decode("utf-8")
|
||||||
|
return value in _header.lower()
|
||||||
|
|
||||||
return checker
|
return checker
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user