Mercurial > hg
view tests/blackbox-readonly-dispatch.py @ 44422:d5d262c7e7a2
phabricator: refactor `phabread` to write all patches at once
This will be necessary to create a first class `phabimport` command. That
command requires a transaction, and will import all named patches within a
single transaction. But if Phabricator queries also happen within the
transaction, that leaves open the chance that an exception is raised, the
transaction is abandoned, and the next command that is run will complain about
needing to run `hg recover`.
Differential Revision: https://phab.mercurial-scm.org/D8135
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 16 Feb 2020 15:06:20 -0500 |
parents | 86e4daa2d54c |
children | 6000f5b25c9b |
line wrap: on
line source
from __future__ import absolute_import import os from mercurial import ( dispatch, extensions, ui as uimod, ) def testdispatch(cmd): """Simple wrapper around dispatch.dispatch() Prints command and result value, but does not handle quoting. """ ui = uimod.ui.load() extensions.populateui(ui) ui.statusnoi18n(b"running: %s\n" % cmd) req = dispatch.request(cmd.split(), ui) result = dispatch.dispatch(req) ui.statusnoi18n(b"result: %r\n" % result) # create file 'foo', add and commit f = open(b'foo', 'wb') f.write(b'foo\n') f.close() testdispatch(b"--debug add foo") testdispatch(b"--debug commit -m commit1 -d 2000-01-01 foo") # append to file 'foo' and commit f = open(b'foo', 'ab') f.write(b'bar\n') f.close() # remove blackbox.log directory (proxy for readonly log file) os.rmdir(b".hg/blackbox.log") # replace it with the real blackbox.log file os.rename(b".hg/blackbox.log-", b".hg/blackbox.log") testdispatch(b"--debug commit -m commit2 -d 2000-01-02 foo") # check 88803a69b24 (fancyopts modified command table) testdispatch(b"--debug log -r 0") testdispatch(b"--debug log -r tip")