Mercurial > public > mercurial-scm > hg-stable
annotate tests/test-simplemerge.py @ 48590:12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
`render_markers()` now always renders minimized 2-way markers, so
let's simplify and rename it accordingly.
Differential Revision: https://phab.mercurial-scm.org/D11979
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 11 Jan 2022 21:56:27 -0800 |
parents | 2dbee604a4f0 |
children | 7ed4c4753891 |
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 from __future__ import absolute_import |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
17 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
18 import unittest |
28927
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
19 from mercurial import ( |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
20 error, |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
21 simplemerge, |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
22 util, |
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
23 ) |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
24 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
25 from mercurial.utils import stringutil |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
26 |
28927
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
27 TestCase = unittest.TestCase |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
28 # bzr compatible interface, for the tests |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
29 class Merge3(simplemerge.Merge3Text): |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
30 """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
|
31 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
32 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
|
33 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
|
34 All three will typically be sequences of lines.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
35 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
36 def __init__(self, base, a, b): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
37 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:
37935
diff
changeset
|
38 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:
37935
diff
changeset
|
39 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:
43012
diff
changeset
|
40 if ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
41 stringutil.binary(basetext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
42 or stringutil.binary(atext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
43 or stringutil.binary(btext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
44 ): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
45 raise error.Abort(b"don't know how to merge binary files") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
46 simplemerge.Merge3Text.__init__( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
47 self, basetext, atext, btext, base, a, b |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
48 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
49 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
50 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
51 CantReprocessAndShowBase = simplemerge.CantReprocessAndShowBase |
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:
43012
diff
changeset
|
53 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
54 def split_lines(t): |
28861
86db5cb55d46
pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents:
26587
diff
changeset
|
55 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
|
56 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
57 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
58 ############################################################ |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
59 # 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
|
60 # common base |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
61 TZU = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
62 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
|
63 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
|
64 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
65 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
|
66 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
|
67 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
|
68 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
|
69 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
70 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
71 they have different names. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
72 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
|
73 Deeper and more profound, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
74 The door of all subtleties! |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
75 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
76 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
77 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
78 LAO = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
79 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
|
80 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
|
81 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
|
82 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
|
83 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
|
84 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
|
85 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
|
86 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
|
87 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
88 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
89 they have different names. |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
90 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
91 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
92 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
93 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
94 TAO = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
95 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
|
96 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
|
97 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
|
98 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
|
99 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
100 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
|
101 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
|
102 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
|
103 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
|
104 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
105 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
106 they have different names. |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
107 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
108 -- 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
|
109 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
110 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
111 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
112 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
113 MERGED_RESULT = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
114 b"""\ |
10282
08a0f04b56bd
many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents:
6212
diff
changeset
|
115 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
|
116 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
|
117 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
124 But after they are produced, |
38645
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
125 they have different names.\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
126 \n<<<<<<< LAO\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
127 \n======= |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
128 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
129 -- 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:
37936
diff
changeset
|
130 \ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
131 \n>>>>>>> TAO |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
132 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
133 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
134 |
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 class TestMerge3(TestCase): |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
137 def log(self, msg): |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
138 pass |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
139 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
140 def test_no_changes(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
141 """No conflicts because nothing changed""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
142 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
|
143 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
144 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
145 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
146 [(0, 2, 0, 2, 0, 2), (2, 2, 2, 2, 2, 2)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
147 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
148 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
149 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
|
150 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
151 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
152 list(m3.merge_groups()), [(b'unchanged', [b'aaa', b'bbb'])] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
153 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
154 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
155 def test_front_insert(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
156 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
|
157 |
17513 | 158 # 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
|
159 # to match without zz |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
160 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
161 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
162 [(0, 1, 2, 3, 0, 1), (1, 1, 3, 3, 1, 1)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
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:
43012
diff
changeset
|
165 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
166 list(m3.merge_regions()), [(b'a', 0, 2), (b'unchanged', 0, 1)] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
167 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
168 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
169 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
170 list(m3.merge_groups()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
171 [(b'a', [b'aaa', b'bbb']), (b'unchanged', [b'zz'])], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
172 ) |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
173 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
174 def test_null_insert(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
175 m3 = Merge3([], [b'aaa', b'bbb'], []) |
17513 | 176 # 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
|
177 # to match without zz |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
178 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
|
179 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
180 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
|
181 |
48586
2dbee604a4f0
simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com>
parents:
48585
diff
changeset
|
182 self.assertEqual( |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
183 simplemerge.render_minimized(m3), ([b'aaa', b'bbb'], False) |
48586
2dbee604a4f0
simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com>
parents:
48585
diff
changeset
|
184 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
185 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
186 def test_no_conflicts(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
187 """No conflicts because only one side changed""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
188 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
189 [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:
43012
diff
changeset
|
190 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
191 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
192 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
193 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
194 [(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:
43012
diff
changeset
|
195 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
196 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
197 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
198 list(m3.merge_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
199 [(b'unchanged', 0, 1), (b'a', 1, 2), (b'unchanged', 1, 2)], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
200 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
201 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
202 def test_append_a(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
203 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
204 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
205 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
206 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
207 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
208 |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
209 self.assertEqual( |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
210 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n' |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
211 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
212 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
213 def test_append_b(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
214 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
215 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
216 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
217 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
218 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
219 |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
220 self.assertEqual( |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
221 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n' |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
222 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
223 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
224 def test_append_agreement(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
225 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
226 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
227 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
228 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
229 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
230 |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
231 self.assertEqual( |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
232 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n' |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
233 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
234 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
235 def test_append_clash(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
236 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
237 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
238 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
239 [b'aaa\n', b'bbb\n', b'333\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
240 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
241 |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
242 ml, conflicts = simplemerge.render_minimized( |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
243 m3, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
244 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
245 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
246 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
247 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
248 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
249 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
250 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
251 b''.join(ml), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
252 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:
43012
diff
changeset
|
253 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
254 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
255 def test_insert_agreement(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
256 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
257 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
258 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
259 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
260 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
261 |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
262 ml, conflicts = simplemerge.render_minimized( |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
263 m3, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
264 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
265 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
266 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
267 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
268 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
269 ) |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
270 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
|
271 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
272 def test_insert_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
273 """Both try to insert lines in the same place.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
274 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
275 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
276 [b'aaa\n', b'111\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
277 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
278 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
279 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
280 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
281 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
282 [(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:
43012
diff
changeset
|
283 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
284 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
285 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
286 list(m3.merge_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
287 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
288 (b'unchanged', 0, 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
289 (b'conflict', 1, 1, 1, 2, 1, 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
290 (b'unchanged', 1, 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
291 ], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
292 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
293 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
294 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
295 list(m3.merge_groups()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
296 [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
297 (b'unchanged', [b'aaa\n']), |
48576
374bf34c9ffd
simplemerge: make merge_groups() yield only 2-tuples
Martin von Zweigbergk <martinvonz@google.com>
parents:
46429
diff
changeset
|
298 (b'conflict', ([], [b'111\n'], [b'222\n'])), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
299 (b'unchanged', [b'bbb\n']), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
300 ], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
301 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
302 |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
303 ml, conflicts = simplemerge.render_minimized( |
48585
c6649c53073f
simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com>
parents:
48584
diff
changeset
|
304 m3, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
305 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
306 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
307 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
308 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
309 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
310 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
311 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
312 b''.join(ml), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
313 b'''aaa |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
314 << a |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
315 111 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
316 -- |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
317 222 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
318 >> b |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
319 bbb |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
320 ''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
321 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
322 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
323 def test_replace_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
324 """Both try to insert lines in the same place.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
325 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
326 [b'aaa', b'000', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
327 [b'aaa', b'111', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
328 [b'aaa', b'222', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
329 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
330 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
331 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
332 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
333 [(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:
43012
diff
changeset
|
334 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
335 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
336 def test_replace_multi(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
337 """Replacement with regions of different size.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
338 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
339 [b'aaa', b'000', b'000', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
340 [b'aaa', b'111', b'111', b'111', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
341 [b'aaa', b'222', b'222', b'222', b'222', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
342 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
343 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
344 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
345 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
346 [(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:
43012
diff
changeset
|
347 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
348 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
349 def test_merge_poem(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
350 """Test case from diff3 manual""" |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
351 m3 = Merge3(TZU, LAO, TAO) |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
352 ml, conflicts = simplemerge.render_minimized(m3, b'LAO', b'TAO') |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
353 self.log(b'merge result:') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
354 self.log(b''.join(ml)) |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
355 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
|
356 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
357 def test_binary(self): |
32319
68c43a416585
tests: use context manager form of assertRaises
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28927
diff
changeset
|
358 with self.assertRaises(error.Abort): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
359 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
|
360 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
361 def test_dos_text(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
362 base_text = b'a\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
363 this_text = b'b\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
364 other_text = b'c\r\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
365 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
366 base_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
367 other_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
368 this_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
369 ) |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
370 m_lines, conflicts = simplemerge.render_minimized(m3, b'OTHER', b'THIS') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
371 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
372 b'<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
373 b'>>>>>>> THIS\r\n'.splitlines(True), |
48584
ce8c82a5cd65
simplemerge: convert `merge_lines()` away from generator
Martin von Zweigbergk <martinvonz@google.com>
parents:
48576
diff
changeset
|
374 m_lines, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
375 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
376 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
377 def test_mac_text(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
378 base_text = b'a\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
379 this_text = b'b\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
380 other_text = b'c\r' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
381 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
382 base_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
383 other_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
384 this_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
385 ) |
48590
12ac4401ff7d
simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com>
parents:
48586
diff
changeset
|
386 m_lines, conflicts = simplemerge.render_minimized(m3, b'OTHER', b'THIS') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
387 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
388 b'<<<<<<< OTHER\rc\r=======\rb\r' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
389 b'>>>>>>> THIS\r'.splitlines(True), |
48584
ce8c82a5cd65
simplemerge: convert `merge_lines()` away from generator
Martin von Zweigbergk <martinvonz@google.com>
parents:
48576
diff
changeset
|
390 m_lines, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
391 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
392 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
393 |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
394 if __name__ == '__main__': |
43012
d75142ef054a
tests: use silenttestrunner in test-simplemerge.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38645
diff
changeset
|
395 import silenttestrunner |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43012
diff
changeset
|
396 |
43012
d75142ef054a
tests: use silenttestrunner in test-simplemerge.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38645
diff
changeset
|
397 silenttestrunner.main(__name__) |