annotate tests/blackbox-readonly-dispatch.py @ 47872:cdad6560e832

wireprotov1peer: simplify the way batchable rpcs are defined The scheme with futures/generator is confusing due to the way communication is done by side effects, especially with two different "future" objects. Just returning a request and a function to read the response is easier to understand. There are tests failures with the largefiles extension due to it aliasing one rpc to another one, which gets fixed in the next commit. Differential Revision: https://phab.mercurial-scm.org/D11211
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
date Tue, 24 Aug 2021 17:27:16 +0200
parents 86e4daa2d54c
children 6000f5b25c9b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36738
70a98c3fba2a py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents: 35724
diff changeset
1 from __future__ import absolute_import
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
2 import os
28404
06245740b408 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents: 14438
diff changeset
3 from mercurial import (
06245740b408 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents: 14438
diff changeset
4 dispatch,
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 36739
diff changeset
5 extensions,
36738
70a98c3fba2a py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents: 35724
diff changeset
6 ui as uimod,
28404
06245740b408 tests: test-dispatch use absolute_import
timeless <timeless@mozdev.org>
parents: 14438
diff changeset
7 )
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
8
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40729
diff changeset
9
5178
18a9fbb5cd78 dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents: 5095
diff changeset
10 def testdispatch(cmd):
18a9fbb5cd78 dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents: 5095
diff changeset
11 """Simple wrapper around dispatch.dispatch()
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
12
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
13 Prints command and result value, but does not handle quoting.
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
14 """
36738
70a98c3fba2a py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents: 35724
diff changeset
15 ui = uimod.ui.load()
40729
c93d046d4300 extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents: 36739
diff changeset
16 extensions.populateui(ui)
43080
86e4daa2d54c cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
17 ui.statusnoi18n(b"running: %s\n" % cmd)
36738
70a98c3fba2a py3: make blackbox-readonly-dispatch.py use ui instead of print()
Yuya Nishihara <yuya@tcha.org>
parents: 35724
diff changeset
18 req = dispatch.request(cmd.split(), ui)
14438
08bfec2ef031 dispatch: wrap dispatch related information in a request class
Idan Kamara <idankk86@gmail.com>
parents: 9031
diff changeset
19 result = dispatch.dispatch(req)
43080
86e4daa2d54c cleanup: mark some ui.(status|note|warn|write) calls as not needing i18n
Augie Fackler <augie@google.com>
parents: 43076
diff changeset
20 ui.statusnoi18n(b"result: %r\n" % result)
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
21
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 40729
diff changeset
22
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
23 # create file 'foo', add and commit
36739
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
24 f = open(b'foo', 'wb')
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
25 f.write(b'foo\n')
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
26 f.close()
36739
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
27 testdispatch(b"--debug add foo")
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
28 testdispatch(b"--debug commit -m commit1 -d 2000-01-01 foo")
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
29
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
30 # append to file 'foo' and commit
36739
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
31 f = open(b'foo', 'ab')
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
32 f.write(b'bar\n')
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
33 f.close()
28406
0767c2f624c6 tests: divorce blackbox test from test-dispatch.py
timeless <timeless@mozdev.org>
parents: 28405
diff changeset
34 # remove blackbox.log directory (proxy for readonly log file)
36739
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
35 os.rmdir(b".hg/blackbox.log")
28406
0767c2f624c6 tests: divorce blackbox test from test-dispatch.py
timeless <timeless@mozdev.org>
parents: 28405
diff changeset
36 # replace it with the real blackbox.log file
36739
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
37 os.rename(b".hg/blackbox.log-", b".hg/blackbox.log")
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
38 testdispatch(b"--debug commit -m commit2 -d 2000-01-02 foo")
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
39
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
40 # check 88803a69b24 (fancyopts modified command table)
36739
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
41 testdispatch(b"--debug log -r 0")
f4a508f4ea87 py3: byte-stringify blackbox-readonly-dispatch.py
Yuya Nishihara <yuya@tcha.org>
parents: 36738
diff changeset
42 testdispatch(b"--debug log -r tip")