Mercurial > hg
annotate tests/test-simplemerge.py @ 45979:744ea3c4f41b
bisect: add `-G` to an `hg log` command in a test
This helps readers see what shape of DAG to expect
Differential Revision: https://phab.mercurial-scm.org/D9373
author | Simon Sapin <simon-commits@exyr.org> |
---|---|
date | Mon, 23 Nov 2020 12:54:46 +0100 |
parents | 2372284d9457 |
children | 98e3a693061a |
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:
43010
diff
changeset
|
25 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
|
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:
43010
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): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
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:
37891
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:
37891
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:
43010
diff
changeset
|
40 if ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
41 stringutil.binary(basetext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
42 or stringutil.binary(atext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
43 or stringutil.binary(btext) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
44 ): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
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:
43010
diff
changeset
|
46 simplemerge.Merge3Text.__init__( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
47 self, basetext, atext, btext, base, a, b |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
48 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
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 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:
43010
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:
43010
diff
changeset
|
61 TZU = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
diff
changeset
|
75 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
diff
changeset
|
78 LAO = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
diff
changeset
|
90 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
diff
changeset
|
94 TAO = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
diff
changeset
|
110 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
diff
changeset
|
113 MERGED_RESULT = split_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
37892
diff
changeset
|
125 they have different names.\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
126 \n<<<<<<< LAO\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
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:
37892
diff
changeset
|
130 \ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37892
diff
changeset
|
131 \n>>>>>>> TAO |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
132 """ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
133 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
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:
43010
diff
changeset
|
144 self.assertEqual(m3.find_unconflicted(), [(0, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
145 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
146 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
147 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
148 [(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
|
149 ) |
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:
43010
diff
changeset
|
151 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
|
152 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
153 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
154 list(m3.merge_groups()), [(b'unchanged', [b'aaa', b'bbb'])] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
155 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
156 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
157 def test_front_insert(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
158 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
|
159 |
17513 | 160 # 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
|
161 # to match without zz |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
162 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
163 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
164 [(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
|
165 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
166 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
167 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
168 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
|
169 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
170 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
171 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
172 list(m3.merge_groups()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
173 [(b'a', [b'aaa', b'bbb']), (b'unchanged', [b'zz'])], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
174 ) |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
175 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
176 def test_null_insert(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
177 m3 = Merge3([], [b'aaa', b'bbb'], []) |
17513 | 178 # 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
|
179 # to match without zz |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
180 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
|
181 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
182 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
|
183 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
184 self.assertEqual(list(m3.merge_lines()), [b'aaa', b'bbb']) |
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:
43010
diff
changeset
|
188 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
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:
43010
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:
43010
diff
changeset
|
192 self.assertEqual(m3.find_unconflicted(), [(0, 1), (1, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
193 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
194 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
195 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
196 [(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
|
197 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
198 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
199 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
200 list(m3.merge_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
201 [(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
|
202 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
203 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
204 def test_append_a(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
205 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
206 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
207 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
208 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
209 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
210 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
211 self.assertEqual(b''.join(m3.merge_lines()), b'aaa\nbbb\n222\n') |
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:
43010
diff
changeset
|
214 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
215 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
216 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
217 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
218 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
219 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
220 self.assertEqual(b''.join(m3.merge_lines()), b'aaa\nbbb\n222\n') |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
221 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
222 def test_append_agreement(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
223 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
224 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
225 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
226 [b'aaa\n', b'bbb\n', b'222\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
227 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
228 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
229 self.assertEqual(b''.join(m3.merge_lines()), b'aaa\nbbb\n222\n') |
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 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
238 ml = m3.merge_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
239 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
240 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
241 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
242 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
243 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
244 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
245 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
246 b''.join(ml), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
247 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
|
248 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
249 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
250 def test_insert_agreement(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
251 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
252 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
253 [b'aaa\n', b'222\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 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
256 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
257 ml = m3.merge_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
258 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
259 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
260 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
261 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
262 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
263 ) |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
264 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
|
265 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
266 def test_insert_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
267 """Both try to insert lines in the same place.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
268 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
269 [b'aaa\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
270 [b'aaa\n', b'111\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
271 [b'aaa\n', b'222\n', b'bbb\n'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
272 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
273 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
274 self.assertEqual(m3.find_unconflicted(), [(0, 1), (1, 2)]) |
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']), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
294 (b'conflict', [], [b'111\n'], [b'222\n']), |
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 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
299 ml = m3.merge_lines( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
300 name_a=b'a', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
301 name_b=b'b', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
302 start_marker=b'<<', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
303 mid_marker=b'--', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
304 end_marker=b'>>', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
305 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
306 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
307 b''.join(ml), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
308 b'''aaa |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
309 << a |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
310 111 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
311 -- |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
312 222 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
313 >> b |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
314 bbb |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
315 ''', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
316 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
317 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
318 def test_replace_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
319 """Both try to insert lines in the same place.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
320 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
321 [b'aaa', b'000', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
322 [b'aaa', b'111', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
323 [b'aaa', b'222', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
324 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
325 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
326 self.assertEqual(m3.find_unconflicted(), [(0, 1), (2, 3)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
327 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
328 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
329 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
330 [(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
|
331 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
332 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
333 def test_replace_multi(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
334 """Replacement with regions of different size.""" |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
335 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
336 [b'aaa', b'000', b'000', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
337 [b'aaa', b'111', b'111', b'111', b'bbb'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
338 [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
|
339 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
340 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
341 self.assertEqual(m3.find_unconflicted(), [(0, 1), (3, 4)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
342 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
343 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
344 list(m3.find_sync_regions()), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
345 [(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
|
346 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
347 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
348 def test_merge_poem(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
349 """Test case from diff3 manual""" |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
350 m3 = Merge3(TZU, LAO, TAO) |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
351 ml = list(m3.merge_lines(b'LAO', b'TAO')) |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
352 self.log(b'merge result:') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
353 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
|
354 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
|
355 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
356 def test_binary(self): |
32279
68c43a416585
tests: use context manager form of assertRaises
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28927
diff
changeset
|
357 with self.assertRaises(error.Abort): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
358 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
|
359 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
360 def test_dos_text(self): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
361 base_text = b'a\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
362 this_text = b'b\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
363 other_text = b'c\r\n' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
364 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
365 base_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
366 other_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
367 this_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
368 ) |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
369 m_lines = m3.merge_lines(b'OTHER', b'THIS') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
370 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
371 b'<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
372 b'>>>>>>> THIS\r\n'.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
373 list(m_lines), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
374 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
375 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
376 def test_mac_text(self): |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
377 base_text = b'a\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
378 this_text = b'b\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
379 other_text = b'c\r' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
380 m3 = Merge3( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
381 base_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
382 other_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
383 this_text.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
384 ) |
37892
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37891
diff
changeset
|
385 m_lines = m3.merge_lines(b'OTHER', b'THIS') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
386 self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
387 b'<<<<<<< OTHER\rc\r=======\rb\r' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
388 b'>>>>>>> THIS\r'.splitlines(True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
389 list(m_lines), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
390 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
391 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
392 |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
393 if __name__ == '__main__': |
43010
d75142ef054a
tests: use silenttestrunner in test-simplemerge.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38645
diff
changeset
|
394 import silenttestrunner |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
43010
diff
changeset
|
395 |
43010
d75142ef054a
tests: use silenttestrunner in test-simplemerge.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38645
diff
changeset
|
396 silenttestrunner.main(__name__) |