tests/test-dispatch.py
author Pulkit Goyal <7895pulkit@gmail.com>
Mon, 24 Aug 2020 15:20:09 +0530
changeset 45479 09edbff6ae8d
parent 43076 2372284d9457
child 48966 6000f5b25c9b
permissions -rw-r--r--
merge: store ACTION_KEEP_ABSENT when we are keeping the file absent locally If a file is not present on the local side, and it's unchanged between other merge parent and ancestor, we don't use any action, neither we had a if-else branch for that condition. This leads to bid-merge missing that there is a such action possible which can be performed. As test changes demonstrate, we now choose the locally deleted side instead of choosing the remote one consistently. This is also wrong behavior which is resulted because of missing possible action. It will be fixed in next patch. This whole logic is not acurrate as we should prompt user on what to do when this kind of criss-cross merge is in play. Differential Revision: https://phab.mercurial-scm.org/D8940
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28405
1d9d29d4813a tests: test-dispatch use print_function
timeless <timeless@mozdev.org>
parents: 28404
diff changeset
     1
from __future__ import absolute_import, print_function
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
     2
import os
37968
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
     3
import sys
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 37968
diff changeset
     4
from mercurial import dispatch
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 37968
diff changeset
     5
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
     6
37968
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
     7
def printb(data, end=b'\n'):
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
     8
    out = getattr(sys.stdout, 'buffer', sys.stdout)
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
     9
    out.write(data + end)
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
    10
    out.flush()
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
    11
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 37968
diff changeset
    12
5178
18a9fbb5cd78 dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents: 5095
diff changeset
    13
def testdispatch(cmd):
18a9fbb5cd78 dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents: 5095
diff changeset
    14
    """Simple wrapper around dispatch.dispatch()
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    15
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    16
    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
    17
    """
37968
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
    18
    printb(b"running: %s" % (cmd,))
14438
08bfec2ef031 dispatch: wrap dispatch related information in a request class
Idan Kamara <idankk86@gmail.com>
parents: 9031
diff changeset
    19
    req = dispatch.request(cmd.split())
08bfec2ef031 dispatch: wrap dispatch related information in a request class
Idan Kamara <idankk86@gmail.com>
parents: 9031
diff changeset
    20
    result = dispatch.dispatch(req)
37968
32106c474086 tests: port test-dispatch.py to Python 3
Augie Fackler <augie@google.com>
parents: 36405
diff changeset
    21
    printb(b"result: %r" % (result,))
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    22
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 37968
diff changeset
    23
36405
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    24
testdispatch(b"init test1")
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    25
os.chdir('test1')
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    26
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    27
# create file 'foo', add and commit
9031
3b76321aa0de compat: use open() instead of file() everywhere
Alejandro Santos <alejolp@alejolp.com>
parents: 5178
diff changeset
    28
f = open('foo', 'wb')
36405
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    29
f.write(b'foo\n')
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    30
f.close()
36405
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    31
testdispatch(b"add foo")
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    32
testdispatch(b"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
    33
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    34
# append to file 'foo' and commit
9031
3b76321aa0de compat: use open() instead of file() everywhere
Alejandro Santos <alejolp@alejolp.com>
parents: 5178
diff changeset
    35
f = open('foo', 'ab')
36405
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    36
f.write(b'bar\n')
5095
f3f033def181 Added test for commands.dispatch (especially 88803a69b24)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    37
f.close()
36405
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    38
testdispatch(b"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)
36405
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    41
testdispatch(b"log -r 0")
f0c94af0d70d py3: add b'' prefixes in test-dispatch.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28405
diff changeset
    42
testdispatch(b"log -r tip")