infinitepush: use the new function to determine push destination
Since
066b8d8f75b8, the push command accept multiple destination. `infinitepush`
was not aware of that. We now use the new `urlutil.get_push_paths` function to
determine the push destination, fixing the issue. This will also make future
evolution of that logic transparent for infinitepush
We still disallow push to multiple destinations if infinite push is enabled
because I don't know what this means for infinite push. However user will now
get a clear error message instead of a crash.
Differential Revision: https://phab.mercurial-scm.org/D10379
from __future__ import absolute_import, print_function
import os
from mercurial import (
dispatch,
ui as uimod,
)
from mercurial.utils import stringutil
# ensure errors aren't buffered
testui = uimod.ui()
testui.pushbuffer()
testui.writenoi18n(b'buffered\n')
testui.warnnoi18n(b'warning\n')
testui.write_err(b'error\n')
print(stringutil.pprint(testui.popbuffer(), bprefix=True).decode('ascii'))
# test dispatch.dispatch with the same ui object
hgrc = open(os.environ["HGRCPATH"], 'wb')
hgrc.write(b'[extensions]\n')
hgrc.write(b'color=\n')
hgrc.close()
ui_ = uimod.ui.load()
ui_.setconfig(b'ui', b'formatted', b'True')
# we're not interested in the output, so write that to devnull
ui_.fout = open(os.devnull, 'wb')
# call some arbitrary command just so we go through
# color's wrapped _runcommand twice.
def runcmd():
dispatch.dispatch(dispatch.request([b'version', b'-q'], ui_))
runcmd()
print("colored? %s" % (ui_._colormode is not None))
runcmd()
print("colored? %s" % (ui_._colormode is not None))