Mercurial > hg-stable
annotate tests/test-simplemerge.py @ 40501:30a7d3b6b281
narrow: rework logic to check whether we need to widen and narrow
This patch reworks logic which calculates whether we need to extend or narrow
our working copy or not.
We filter the addincludes, removeincludes, addexcludes and removeexcludes passed
from user to the actual added and removed includes and excludes. What that means
is a user can pass an already included path as addincludes, a path which is not
included as removeincludes etc. In such situations the old logic use to think we
need to do some work, whereas we don't need to do that work.
In old logic, even if we don't have anything new to include but it believes we
need to call widen, this adds some good amount of work on large repository. A
widen calls involves computing incomming csets, calling the narrow_widen() which
in non-ellipses cases goes through all the set of csets which are available
which can take ~2-3 mins on large repos. Those 2-3 minutes are spend on doing
nothing which a client can prevent by checking is there really anything which
needs to be included.
The tests changes shows that we don't go to the server anymore in such cases
which is nice.
Differential Revision: https://phab.mercurial-scm.org/D5183
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Tue, 23 Oct 2018 16:24:04 +0300 |
parents | 02850baddadd |
children | d75142ef054a |
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 |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
25 from mercurial.utils import ( |
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
26 stringutil, |
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
27 ) |
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
28 |
28927
2d433fa7ff44
tests: make test-simplemerge use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28861
diff
changeset
|
29 TestCase = unittest.TestCase |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
30 # bzr compatible interface, for the tests |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
31 class Merge3(simplemerge.Merge3Text): |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
32 """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
|
33 |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
34 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
|
35 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
|
36 All three will typically be sequences of lines.""" |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
37 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
|
38 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
|
39 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
|
40 btext = b'\n'.join([i.strip(b'\n') for i in b] + [b'']) |
37087
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
41 if (stringutil.binary(basetext) or stringutil.binary(atext) |
f0b6fbea00cf
stringutil: bulk-replace call sites to point to new module
Yuya Nishihara <yuya@tcha.org>
parents:
32319
diff
changeset
|
42 or stringutil.binary(btext)): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
43 raise error.Abort(b"don't know how to merge binary files") |
6002
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
44 simplemerge.Merge3Text.__init__(self, basetext, atext, btext, |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
45 base, a, b) |
abd66eb0889e
merge: move the bulk of simplemerge into core
Matt Mackall <mpm@selenic.com>
parents:
4633
diff
changeset
|
46 |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
47 CantReprocessAndShowBase = simplemerge.CantReprocessAndShowBase |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
48 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
49 def split_lines(t): |
28861
86db5cb55d46
pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents:
26587
diff
changeset
|
50 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
|
51 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
52 ############################################################ |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
53 # 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
|
54 # common base |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
55 TZU = split_lines(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
|
56 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
|
57 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
58 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
|
59 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
|
60 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
|
61 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
|
62 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
63 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
64 they have different names. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
65 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
|
66 Deeper and more profound, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
67 The door of all subtleties! |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
68 """) |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
69 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
70 LAO = split_lines(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
|
71 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
|
72 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
|
73 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
|
74 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
|
75 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
|
76 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
|
77 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
|
78 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
79 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
80 they have different names. |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
81 """) |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
82 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
83 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
84 TAO = split_lines(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
|
85 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
|
86 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
|
87 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
|
88 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
89 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
|
90 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
|
91 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
|
92 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
|
93 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
94 But after they are produced, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
95 they have different names. |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
96 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
97 -- 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
|
98 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
99 """) |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
100 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
101 MERGED_RESULT = split_lines(b"""\ |
10282
08a0f04b56bd
many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents:
6212
diff
changeset
|
102 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
|
103 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
|
104 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
|
105 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
|
106 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
|
107 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
|
108 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
|
109 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
|
110 The two are the same, |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
111 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
|
112 they have different names.\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
113 \n<<<<<<< LAO\ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
114 \n======= |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
115 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
116 -- 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
|
117 \ |
02850baddadd
tests: prevent conflict markers in test case from triggering warnings
Danny Hooper <hooper@google.com>
parents:
37936
diff
changeset
|
118 \n>>>>>>> TAO |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
119 """) |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
120 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
121 class TestMerge3(TestCase): |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
122 def log(self, msg): |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
123 pass |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
124 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
125 def test_no_changes(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
126 """No conflicts because nothing changed""" |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
127 m3 = Merge3([b'aaa', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
128 [b'aaa', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
129 [b'aaa', b'bbb']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
130 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
131 self.assertEqual(m3.find_unconflicted(), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
132 [(0, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
133 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
134 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
135 [(0, 2, |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
136 0, 2, |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
137 0, 2), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
138 (2, 2, 2, 2, 2, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
139 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
140 self.assertEqual(list(m3.merge_regions()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
141 [(b'unchanged', 0, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
142 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
143 self.assertEqual(list(m3.merge_groups()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
144 [(b'unchanged', [b'aaa', b'bbb'])]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
145 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
146 def test_front_insert(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
147 m3 = Merge3([b'zz'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
148 [b'aaa', b'bbb', b'zz'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
149 [b'zz']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
150 |
17513 | 151 # 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
|
152 # to match without zz |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
153 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
154 [(0, 1, 2, 3, 0, 1), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
155 (1, 1, 3, 3, 1, 1)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
156 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
157 self.assertEqual(list(m3.merge_regions()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
158 [(b'a', 0, 2), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
159 (b'unchanged', 0, 1)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
160 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
161 self.assertEqual(list(m3.merge_groups()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
162 [(b'a', [b'aaa', b'bbb']), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
163 (b'unchanged', [b'zz'])]) |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4363
diff
changeset
|
164 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
165 def test_null_insert(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
166 m3 = Merge3([], |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
167 [b'aaa', b'bbb'], |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
168 []) |
17513 | 169 # 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
|
170 # to match without zz |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
171 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
172 [(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
|
173 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
174 self.assertEqual(list(m3.merge_regions()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
175 [(b'a', 0, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
176 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
177 self.assertEqual(list(m3.merge_lines()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
178 [b'aaa', b'bbb']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
179 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
180 def test_no_conflicts(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
181 """No conflicts because only one side changed""" |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
182 m3 = Merge3([b'aaa', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
183 [b'aaa', b'111', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
184 [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 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
186 self.assertEqual(m3.find_unconflicted(), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
187 [(0, 1), (1, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
188 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
189 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
190 [(0, 1, 0, 1, 0, 1), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
191 (1, 2, 2, 3, 1, 2), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
192 (2, 2, 3, 3, 2, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
193 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
194 self.assertEqual(list(m3.merge_regions()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
195 [(b'unchanged', 0, 1), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
196 (b'a', 1, 2), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
197 (b'unchanged', 1, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
198 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
199 def test_append_a(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
200 m3 = Merge3([b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
201 [b'aaa\n', b'bbb\n', b'222\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
202 [b'aaa\n', b'bbb\n']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
203 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
204 self.assertEqual(b''.join(m3.merge_lines()), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
205 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
|
206 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
207 def test_append_b(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
208 m3 = Merge3([b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
209 [b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
210 [b'aaa\n', b'bbb\n', b'222\n']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
211 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
212 self.assertEqual(b''.join(m3.merge_lines()), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
213 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
|
214 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
215 def test_append_agreement(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
216 m3 = Merge3([b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
217 [b'aaa\n', b'bbb\n', b'222\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
218 [b'aaa\n', b'bbb\n', b'222\n']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
219 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
220 self.assertEqual(b''.join(m3.merge_lines()), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
221 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
|
222 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
223 def test_append_clash(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
224 m3 = Merge3([b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
225 [b'aaa\n', b'bbb\n', b'222\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
226 [b'aaa\n', b'bbb\n', b'333\n']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
227 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
228 ml = m3.merge_lines(name_a=b'a', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
229 name_b=b'b', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
230 start_marker=b'<<', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
231 mid_marker=b'--', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
232 end_marker=b'>>') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
233 self.assertEqual(b''.join(ml), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
234 b'aaa\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
235 b'bbb\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
236 b'<< a\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
237 b'222\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
238 b'--\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
239 b'333\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
240 b'>> b\n' |
4633
ff7253a0d1da
Cleanup of whitespace, indentation and line continuation.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4516
diff
changeset
|
241 ) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
242 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
243 def test_insert_agreement(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
244 m3 = Merge3([b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
245 [b'aaa\n', b'222\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
246 [b'aaa\n', b'222\n', b'bbb\n']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
247 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
248 ml = m3.merge_lines(name_a=b'a', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
249 name_b=b'b', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
250 start_marker=b'<<', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
251 mid_marker=b'--', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
252 end_marker=b'>>') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
253 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
|
254 |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
255 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
256 def test_insert_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
257 """Both try to insert lines in the same place.""" |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
258 m3 = Merge3([b'aaa\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
259 [b'aaa\n', b'111\n', b'bbb\n'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
260 [b'aaa\n', b'222\n', b'bbb\n']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
261 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
262 self.assertEqual(m3.find_unconflicted(), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
263 [(0, 1), (1, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
264 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
265 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
266 [(0, 1, 0, 1, 0, 1), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
267 (1, 2, 2, 3, 2, 3), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
268 (2, 2, 3, 3, 3, 3)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
269 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
270 self.assertEqual(list(m3.merge_regions()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
271 [(b'unchanged', 0, 1), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
272 (b'conflict', 1, 1, 1, 2, 1, 2), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
273 (b'unchanged', 1, 2)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
274 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
275 self.assertEqual(list(m3.merge_groups()), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
276 [(b'unchanged', [b'aaa\n']), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
277 (b'conflict', [], [b'111\n'], [b'222\n']), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
278 (b'unchanged', [b'bbb\n']), |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
279 ]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
280 |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
281 ml = m3.merge_lines(name_a=b'a', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
282 name_b=b'b', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
283 start_marker=b'<<', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
284 mid_marker=b'--', |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
285 end_marker=b'>>') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
286 self.assertEqual(b''.join(ml), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
287 b'''aaa |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
288 << a |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
289 111 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
290 -- |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
291 222 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
292 >> b |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
293 bbb |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
294 ''') |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
295 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
296 def test_replace_clash(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
297 """Both try to insert lines in the same place.""" |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
298 m3 = Merge3([b'aaa', b'000', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
299 [b'aaa', b'111', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
300 [b'aaa', b'222', b'bbb']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
301 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
302 self.assertEqual(m3.find_unconflicted(), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
303 [(0, 1), (2, 3)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
304 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
305 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
306 [(0, 1, 0, 1, 0, 1), |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
307 (2, 3, 2, 3, 2, 3), |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
308 (3, 3, 3, 3, 3, 3)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
309 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
310 def test_replace_multi(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
311 """Replacement with regions of different size.""" |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
312 m3 = Merge3([b'aaa', b'000', b'000', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
313 [b'aaa', b'111', b'111', b'111', b'bbb'], |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
314 [b'aaa', b'222', b'222', b'222', b'222', b'bbb']) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
315 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
316 self.assertEqual(m3.find_unconflicted(), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
317 [(0, 1), (3, 4)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
318 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
319 |
37935
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
320 self.assertEqual(list(m3.find_sync_regions()), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
321 [(0, 1, 0, 1, 0, 1), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
322 (3, 4, 4, 5, 5, 6), |
a3ed6e7217c1
tests: replace use of assertEquals with assertEqual in test-simplemerge.py
Augie Fackler <augie@google.com>
parents:
37087
diff
changeset
|
323 (4, 4, 5, 5, 6, 6)]) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
324 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
325 def test_merge_poem(self): |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
326 """Test case from diff3 manual""" |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
327 m3 = Merge3(TZU, LAO, TAO) |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
328 ml = list(m3.merge_lines(b'LAO', b'TAO')) |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
329 self.log(b'merge result:') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
330 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
|
331 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
|
332 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
333 def test_binary(self): |
32319
68c43a416585
tests: use context manager form of assertRaises
Gregory Szorc <gregory.szorc@gmail.com>
parents:
28927
diff
changeset
|
334 with self.assertRaises(error.Abort): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
335 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
|
336 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
337 def test_dos_text(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
338 base_text = b'a\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
339 this_text = b'b\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
340 other_text = b'c\r\n' |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
341 m3 = Merge3(base_text.splitlines(True), other_text.splitlines(True), |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
342 this_text.splitlines(True)) |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
343 m_lines = m3.merge_lines(b'OTHER', b'THIS') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
344 self.assertEqual(b'<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
345 b'>>>>>>> THIS\r\n'.splitlines(True), list(m_lines)) |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
346 |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
347 def test_mac_text(self): |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
348 base_text = b'a\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
349 this_text = b'b\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
350 other_text = b'c\r' |
4362
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
351 m3 = Merge3(base_text.splitlines(True), other_text.splitlines(True), |
465b9ea02868
Import 3-way merge code from bzr
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
352 this_text.splitlines(True)) |
37936
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
353 m_lines = m3.merge_lines(b'OTHER', b'THIS') |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
354 self.assertEqual(b'<<<<<<< OTHER\rc\r=======\rb\r' |
c1bc196e021d
tests: port test-simplemerge.py to Python 3
Augie Fackler <augie@google.com>
parents:
37935
diff
changeset
|
355 b'>>>>>>> THIS\r'.splitlines(True), list(m_lines)) |
4363
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
356 |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
357 if __name__ == '__main__': |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
358 # hide the timer |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
359 import time |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
360 orig = time.time |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
361 try: |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
362 time.time = lambda: 0 |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
363 unittest.main() |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
364 finally: |
2e3c54fb79a3
actually port simplemerge to hg
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4362
diff
changeset
|
365 time.time = orig |