--- a/hgext/phabricator.py Thu May 09 18:37:37 2019 -0400
+++ b/hgext/phabricator.py Sun May 05 17:04:48 2019 +0100
@@ -127,6 +127,13 @@
def vcrcommand(name, flags, spec, helpcategory=None):
fullflags = flags + _VCR_FLAGS
+ def hgmatcher(r1, r2):
+ if r1.uri != r2.uri or r1.method != r2.method:
+ return False
+ r1params = r1.body.split(b'&')
+ r2params = r2.body.split(b'&')
+ return set(r1params) == set(r2params)
+
def decorate(fn):
def inner(*args, **kwargs):
cassette = pycompat.fsdecode(kwargs.pop(r'test_vcr', None))
@@ -143,7 +150,8 @@
(urlmod, r'httpsconnection',
stubs.VCRHTTPSConnection),
])
- with vcr.use_cassette(cassette):
+ vcr.register_matcher(r'hgmatcher', hgmatcher)
+ with vcr.use_cassette(cassette, match_on=[r'hgmatcher']):
return fn(*args, **kwargs)
return fn(*args, **kwargs)
inner.__name__ = fn.__name__