mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-08 16:53:23 +00:00
matchers.py: Support transforming the request body multiple times
This commit is contained in:
@@ -49,11 +49,17 @@ def raw_body(r1, r2):
|
|||||||
|
|
||||||
|
|
||||||
def body(r1, r2):
|
def body(r1, r2):
|
||||||
transformer = _get_transformer(r1)
|
transformers = list(_get_transformers(r1))
|
||||||
r2_transformer = _get_transformer(r2)
|
if transformers != list(_get_transformers(r2)):
|
||||||
if transformer != r2_transformer:
|
transformers = []
|
||||||
transformer = _identity
|
|
||||||
if transformer(read_body(r1)) != transformer(read_body(r2)):
|
b1 = read_body(r1)
|
||||||
|
b2 = read_body(r2)
|
||||||
|
for transform in transformers:
|
||||||
|
b1 = transform(b1)
|
||||||
|
b2 = transform(b2)
|
||||||
|
|
||||||
|
if b1 != b2:
|
||||||
raise AssertionError
|
raise AssertionError
|
||||||
|
|
||||||
|
|
||||||
@@ -92,16 +98,10 @@ _checker_transformer_pairs = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _identity(x):
|
def _get_transformers(request):
|
||||||
return x
|
|
||||||
|
|
||||||
|
|
||||||
def _get_transformer(request):
|
|
||||||
for checker, transformer in _checker_transformer_pairs:
|
for checker, transformer in _checker_transformer_pairs:
|
||||||
if checker(request.headers):
|
if checker(request.headers):
|
||||||
return transformer
|
yield transformer
|
||||||
else:
|
|
||||||
return _identity
|
|
||||||
|
|
||||||
|
|
||||||
def requests_match(r1, r2, matchers):
|
def requests_match(r1, r2, matchers):
|
||||||
|
|||||||
Reference in New Issue
Block a user