mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
fix(filters): make work with dict body parameters, such as aiohttp
Closes https://github.com/kevin1024/vcrpy/issues/398
This commit is contained in:
@@ -84,7 +84,17 @@ def replace_post_data_parameters(request, replacements):
|
||||
|
||||
replacements = dict(replacements)
|
||||
if request.method == "POST" and not isinstance(request.body, BytesIO):
|
||||
if request.headers.get("Content-Type") == "application/json":
|
||||
if isinstance(request.body, dict):
|
||||
new_body = request.body.copy()
|
||||
for k, rv in replacements.items():
|
||||
if k in new_body:
|
||||
ov = new_body.pop(k)
|
||||
if callable(rv):
|
||||
rv = rv(key=k, value=ov, request=request)
|
||||
if rv is not None:
|
||||
new_body[k] = rv
|
||||
request.body = new_body
|
||||
elif request.headers.get("Content-Type") == "application/json":
|
||||
json_data = json.loads(request.body.decode("utf-8"))
|
||||
for k, rv in replacements.items():
|
||||
if k in json_data:
|
||||
|
||||
Reference in New Issue
Block a user