phabricator: unconditionally pop `test_vcr` to fix debugcallconduit
11592ce6a711 / D8525 accidentally broke debugcallconduit in non-test scenarios
because it stopped popping `test_vcr` from `kwargs` unconditionally, so when
`--test-vcr` isn't set the empty string still gets passed down as the value of
`test_vcr` in `kwargs`. However unlike all the other commands debugcallconduit
doesn't have an `**opts` argument to receive it, so it aborts because of
invalid arguments.
Differential Revision: https://phab.mercurial-scm.org/D8852
--- a/hgext/phabricator.py Thu Jul 30 16:52:12 2020 +0100
+++ b/hgext/phabricator.py Thu Jul 30 16:58:38 2020 +0100
@@ -238,8 +238,9 @@
def decorate(fn):
def inner(*args, **kwargs):
- if kwargs.get('test_vcr'):
- cassette = pycompat.fsdecode(kwargs.pop('test_vcr'))
+ vcr = kwargs.pop('test_vcr')
+ if vcr:
+ cassette = pycompat.fsdecode(vcr)
import hgdemandimport
with hgdemandimport.deactivated():
--- a/tests/test-phabricator.t Thu Jul 30 16:52:12 2020 +0100
+++ b/tests/test-phabricator.t Thu Jul 30 16:58:38 2020 +0100
@@ -24,16 +24,9 @@
> EOF
$ VCR="$TESTDIR/phabricator"
-BROKEN: debugcallconduit fails without --test-vcr:
+debugcallconduit doesn't claim invalid arguments without --test-vcr:
$ echo '{}' | HGRCSKIPREPO= hg debugcallconduit 'conduit.ping'
- hg debugcallconduit: invalid arguments
- hg debugcallconduit METHOD
-
- call Conduit API
-
- options:
-
- (use 'hg debugcallconduit -h' to show more help)
+ abort: config phabricator.url is required
[255]
Error is handled reasonably. We override the phabtoken here so that