Mercurial > hg
annotate tests/test-simplemerge.py @ 50329:3dbc7b1ecaba stable
typing: correct the signature of error.CommandError
There's a place in `mercurial.dispatch._parse()` that passes None if a parse
error happens before the command can be parsed out, and casting the error to
bytes works fine because the command and message fields are apparently ignored.
Likewise, TortoiseHg similarly passes None for the same reason.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 24 Mar 2023 02:22:12 -0400 |
parents | 6000f5b25c9b |
children | 493034cc3265 |
rev | line source |
---|---|
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
1 # Copyright (C) 2004, 2005 Canonical Ltd |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
2 # |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
3 # This program is free software; you can redistribute it and/or modify |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
4 # it under the terms of the GNU General Public License as published by |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
5 # the Free Software Foundation; either version 2 of the License, or |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
6 # (at your option) any later version. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
7 # |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
8 # This program is distributed in the hope that it will be useful, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
11 # GNU General Public License for more details. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
12 # |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
13 # You should have received a copy of the GNU General Public License |
15782
7de7630053cb
Remove FSF mailing address from GPL headers
Martin Geisler <mg@aragost.com>
parents:
10413
diff
changeset
|
14 # along with this program; if not, see <http://www.gnu.org/licenses/>. |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
15 |
28927
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
16 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
17 import unittest |
28927
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
18 from mercurial import ( |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
19 error, |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
20 simplemerge, |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
21 util, |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
22 ) |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
23 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
24 from mercurial.utils import stringutil |
37084
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32279
diff
changeset
|
25 |
28927
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
26 TestCase = unittest.TestCase |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
27 # bzr compatible interface, for the tests |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
28 class Merge3(simplemerge.Merge3Text): |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
29 """3-way merge of texts. |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
30 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
31 Given BASE, OTHER, THIS, tries to produce a combined text |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
32 incorporating the changes from both BASE->OTHER and BASE->THIS. |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
33 All three will typically be sequences of lines.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
34 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
35 def __init__(self, base, a, b): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
36 basetext = b'\n'.join([i.strip(b'\n') for i in base] + [b'']) |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
37 atext = b'\n'.join([i.strip(b'\n') for i in a] + [b'']) |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
38 btext = b'\n'.join([i.strip(b'\n') for i in b] + [b'']) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
39 if ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
40 stringutil.binary(basetext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
41 or stringutil.binary(atext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
42 or stringutil.binary(btext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
43 ): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
44 raise error.Abort(b"don't know how to merge binary files") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
45 simplemerge.Merge3Text.__init__( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
46 self, basetext, atext, btext, base, a, b |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
47 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
48 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
49 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
50 def split_lines(t): |
28861
86db5cb55d46
pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents:
26587
diff
changeset
|
51 return util.stringio(t).readlines() |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
52 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
53 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
54 ############################################################ |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
55 # test case data from the gnu diffutils manual |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
56 # common base |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
57 TZU = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
58 b""" The Nameless is the origin of Heaven and Earth; |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
59 The named is the mother of all things. |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
60 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
61 Therefore let there always be non-being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
62 so we may see their subtlety, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
63 And let there always be being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
64 so we may see their outcome. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
65 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
66 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
67 they have different names. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
68 They both may be called deep and profound. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
69 Deeper and more profound, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
70 The door of all subtleties! |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
71 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
72 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
73 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
74 LAO = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
75 b""" The Way that can be told of is not the eternal Way; |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
76 The name that can be named is not the eternal name. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
77 The Nameless is the origin of Heaven and Earth; |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
78 The Named is the mother of all things. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
79 Therefore let there always be non-being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
80 so we may see their subtlety, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
81 And let there always be being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
82 so we may see their outcome. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
83 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
84 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
85 they have different names. |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
86 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
87 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
88 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
89 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
90 TAO = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
91 b""" The Way that can be told of is not the eternal Way; |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
92 The name that can be named is not the eternal name. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
93 The Nameless is the origin of Heaven and Earth; |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
94 The named is the mother of all things. |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
95 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
96 Therefore let there always be non-being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
97 so we may see their subtlety, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
98 And let there always be being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
99 so we may see their result. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
100 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
101 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
102 they have different names. |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
103 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
104 -- The Way of Lao-Tzu, tr. Wing-tsit Chan |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
105 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
106 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
107 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
108 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
109 MERGED_RESULT = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
110 b"""\ |
10282
08a0f04b56bd
many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents:
6212
diff
changeset
|
111 The Way that can be told of is not the eternal Way; |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
112 The name that can be named is not the eternal name. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
113 The Nameless is the origin of Heaven and Earth; |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
114 The Named is the mother of all things. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
115 Therefore let there always be non-being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
116 so we may see their subtlety, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
117 And let there always be being, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
118 so we may see their result. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
119 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
120 But after they are produced, |
38645
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
121 they have different names.\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
122 \n<<<<<<< LAO\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
123 \n======= |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
124 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
125 -- The Way of Lao-Tzu, tr. Wing-tsit Chan |
38645
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
126 \ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
127 \n>>>>>>> TAO |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
128 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
129 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
130 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
131 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
132 class TestMerge3(TestCase): |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
133 def log(self, msg): |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
134 pass |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
135 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
136 def test_no_changes(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
137 """No conflicts because nothing changed""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
138 m3 = Merge3([b'aaa', b'bbb'], [b'aaa', b'bbb'], [b'aaa', b'bbb']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
139 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
140 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
141 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
142 [(0, 2, 0, 2, 0, 2), (2, 2, 2, 2, 2, 2)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
143 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
144 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
145 self.assertEqual(list(m3.merge_regions()), [(b'unchanged', 0, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
146 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
147 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
148 list(m3.merge_groups()), [(b'unchanged', [b'aaa', b'bbb'])] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
149 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
150 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
151 def test_front_insert(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
152 m3 = Merge3([b'zz'], [b'aaa', b'bbb', b'zz'], [b'zz']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
153 |
17513 | 154 # todo: should use a sentinel at end as from get_matching_blocks |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
155 # to match without zz |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
156 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
157 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
158 [(0, 1, 2, 3, 0, 1), (1, 1, 3, 3, 1, 1)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
159 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
160 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
161 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
162 list(m3.merge_regions()), [(b'a', 0, 2), (b'unchanged', 0, 1)] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
163 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
164 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
165 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
166 list(m3.merge_groups()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
167 [(b'a', [b'aaa', b'bbb']), (b'unchanged', [b'zz'])], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
168 ) |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
169 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
170 def test_null_insert(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
171 m3 = Merge3([], [b'aaa', b'bbb'], []) |
17513 | 172 # todo: should use a sentinel at end as from get_matching_blocks |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
173 # to match without zz |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
174 self.assertEqual(list(m3.find_sync_regions()), [(0, 0, 2, 2, 0, 0)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
175 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
176 self.assertEqual(list(m3.merge_regions()), [(b'a', 0, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
177 |
48558
2dbee604a4f0
simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com>
parents:
48557
diff
changeset
|
178 self.assertEqual( |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
179 simplemerge.render_minimized(m3), ([b'aaa', b'bbb'], False) |
48558
2dbee604a4f0
simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com>
parents:
48557
diff
changeset
|
180 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
181 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
182 def test_no_conflicts(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
183 """No conflicts because only one side changed""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
184 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
185 [b'aaa', b'bbb'], [b'aaa', b'111', b'bbb'], [b'aaa', b'bbb'] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
186 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
187 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
188 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
189 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
190 [(0, 1, 0, 1, 0, 1), (1, 2, 2, 3, 1, 2), (2, 2, 3, 3, 2, 2)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
191 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
192 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
193 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
194 list(m3.merge_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
195 [(b'unchanged', 0, 1), (b'a', 1, 2), (b'unchanged', 1, 2)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
196 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
197 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
198 def test_append_a(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
199 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
200 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
201 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
202 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
203 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
204 |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
205 self.assertEqual( |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
206 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n' |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
207 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
208 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
209 def test_append_b(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
210 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
211 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
212 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
213 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
214 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
215 |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
216 self.assertEqual( |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
217 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n' |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
218 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
219 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
220 def test_append_agreement(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
221 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
222 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
223 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
224 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
225 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
226 |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
227 self.assertEqual( |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
228 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n' |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
229 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
230 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
231 def test_append_clash(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
232 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
233 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
234 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
235 [b'aaa\n', b'bbb\n', b'333\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
236 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
237 |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
238 ml, conflicts = simplemerge.render_minimized( |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
239 m3, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
240 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
241 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
242 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
243 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
244 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
245 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
246 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
247 b''.join(ml), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
248 b'aaa\n' b'bbb\n' b'<< a\n' b'222\n' b'--\n' b'333\n' b'>> b\n', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
249 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
250 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
251 def test_insert_agreement(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
252 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
253 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
254 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
255 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
256 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
257 |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
258 ml, conflicts = simplemerge.render_minimized( |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
259 m3, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
260 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
261 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
262 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
263 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
264 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
265 ) |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
266 self.assertEqual(b''.join(ml), b'aaa\n222\nbbb\n') |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
267 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
268 def test_insert_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
269 """Both try to insert lines in the same place.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
270 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
271 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
272 [b'aaa\n', b'111\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
273 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
274 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
275 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
276 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
277 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
278 [(0, 1, 0, 1, 0, 1), (1, 2, 2, 3, 2, 3), (2, 2, 3, 3, 3, 3)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
279 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
280 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
281 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
282 list(m3.merge_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
283 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
284 (b'unchanged', 0, 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
285 (b'conflict', 1, 1, 1, 2, 1, 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
286 (b'unchanged', 1, 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
287 ], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
288 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
289 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
290 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
291 list(m3.merge_groups()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
292 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
293 (b'unchanged', [b'aaa\n']), |
48547
374bf34c9ffd
simplemerge: make merge_groups() yield only 2-tuples
Martin von Zweigbergk <martinvonz@google.com>
parents:
46355
diff
changeset
|
294 (b'conflict', ([], [b'111\n'], [b'222\n'])), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
295 (b'unchanged', [b'bbb\n']), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
296 ], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
297 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
298 |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
299 ml, conflicts = simplemerge.render_minimized( |
48557
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48556
diff
changeset
|
300 m3, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
301 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
302 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
303 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
304 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
305 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
306 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
307 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
308 b''.join(ml), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
309 b'''aaa |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
310 << a |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
311 111 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
312 -- |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
313 222 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
314 >> b |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
315 bbb |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
316 ''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
317 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
318 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
319 def test_replace_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
320 """Both try to insert lines in the same place.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
321 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
322 [b'aaa', b'000', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
323 [b'aaa', b'111', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
324 [b'aaa', b'222', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
325 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
326 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
327 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
328 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
329 [(0, 1, 0, 1, 0, 1), (2, 3, 2, 3, 2, 3), (3, 3, 3, 3, 3, 3)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
330 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
331 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
332 def test_replace_multi(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
333 """Replacement with regions of different size.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
334 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
335 [b'aaa', b'000', b'000', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
336 [b'aaa', b'111', b'111', b'111', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
337 [b'aaa', b'222', b'222', b'222', b'222', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
338 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
339 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
340 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
341 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
342 [(0, 1, 0, 1, 0, 1), (3, 4, 4, 5, 5, 6), (4, 4, 5, 5, 6, 6)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
343 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
344 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
345 def test_merge_poem(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
346 """Test case from diff3 manual""" |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
347 m3 = Merge3(TZU, LAO, TAO) |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
348 ml, conflicts = simplemerge.render_minimized(m3, b'LAO', b'TAO') |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
349 self.log(b'merge result:') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
350 self.log(b''.join(ml)) |
37891
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37084
diff
changeset
|
351 self.assertEqual(ml, MERGED_RESULT) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
352 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
353 def test_binary(self): |
32279
68c43a416585
tests: use context manager form of assertRaises
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28927
diff
changeset
|
354 with self.assertRaises(error.Abort): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
355 Merge3([b'\x00'], [b'a'], [b'b']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
356 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
357 def test_dos_text(self): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
358 base_text = b'a\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
359 this_text = b'b\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
360 other_text = b'c\r\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
361 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
362 base_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
363 other_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
364 this_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
365 ) |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
366 m_lines, conflicts = simplemerge.render_minimized(m3, b'OTHER', b'THIS') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
367 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
368 b'<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
369 b'>>>>>>> THIS\r\n'.splitlines(True), |
48556
ce8c82a5cd65
simplemerge: convert `merge_lines()` away from generator
Martin von Zweigbergk <martinvonz@google.com>
parents:
48547
diff
changeset
|
370 m_lines, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
371 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
372 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
373 def test_mac_text(self): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
374 base_text = b'a\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
375 this_text = b'b\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
376 other_text = b'c\r' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
377 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
378 base_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
379 other_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
380 this_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
381 ) |
48562
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48558
diff
changeset
|
382 m_lines, conflicts = simplemerge.render_minimized(m3, b'OTHER', b'THIS') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
383 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
384 b'<<<<<<< OTHER\rc\r=======\rb\r' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
385 b'>>>>>>> THIS\r'.splitlines(True), |
48556
ce8c82a5cd65
simplemerge: convert `merge_lines()` away from generator
Martin von Zweigbergk <martinvonz@google.com>
parents:
48547
diff
changeset
|
386 m_lines, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
387 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
388 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
389 |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
390 if __name__ == '__main__': |
43010
d75142ef054a
tests: use silenttestrunner in test-simplemerge.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38645
diff
changeset
|
391 import silenttestrunner |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
392 |
43010
d75142ef054a
tests: use silenttestrunner in test-simplemerge.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38645
diff
changeset
|
393 silenttestrunner.main(__name__) |