/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
5557.1.15 by John Arbash Meinel
Merge bzr.dev 5597 to resolve NEWS, aka bzr-2.3.txt
1
# Copyright (C) 2005-2009, 2011 Canonical Ltd
1685.1.80 by Wouter van Heyst
more code cleanup
2
#
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1685.1.80 by Wouter van Heyst
more code cleanup
7
#
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1685.1.80 by Wouter van Heyst
more code cleanup
12
#
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
16
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
17
from .. import (
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
18
    missing,
19
    tests,
20
    )
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
21
from ..missing import (
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
22
    iter_log_revisions,
23
    )
6624 by Jelmer Vernooij
Merge Python3 porting work ('py3 pokes')
24
from . import TestCaseWithTransport
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
25
1534.4.28 by Robert Collins
first cut at merge from integration.
26
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
27
class TestMissing(TestCaseWithTransport):
28
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
29
    def assertUnmerged(self, expected, source, target, restrict='all',
30
                       backward=False):
31
        unmerged = missing.find_unmerged(source, target, restrict=restrict,
32
                                         backward=backward)
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
33
        self.assertEqual(expected, unmerged)
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
34
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
35
    def test_find_unmerged(self):
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
36
        original_tree = self.make_branch_and_tree('original')
37
        original = original_tree.branch
38
        puller_tree = self.make_branch_and_tree('puller')
39
        puller = puller_tree.branch
40
        merger_tree = self.make_branch_and_tree('merger')
41
        merger = merger_tree.branch
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
42
        self.assertUnmerged(([], []), original, puller)
6855.4.1 by Jelmer Vernooij
Yet more bees.
43
        original_tree.commit('a', rev_id=b'a')
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
44
        self.assertUnmerged(([('1', b'a', 0)], []), original, puller)
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
45
        puller_tree.pull(original)
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
46
        self.assertUnmerged(([], []), original, puller)
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
47
        merger_tree.pull(original)
6855.4.1 by Jelmer Vernooij
Yet more bees.
48
        original_tree.commit('b', rev_id=b'b')
49
        original_tree.commit('c', rev_id=b'c')
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
50
        self.assertUnmerged(([('2', b'b', 0), ('3', b'c', 0)], []),
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
51
                            original, puller)
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
52
        self.assertUnmerged(([('3', b'c', 0), ('2', b'b', 0)], []),
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
53
                            original, puller, backward=True)
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
54
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
55
        puller_tree.pull(original)
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
56
        self.assertUnmerged(([], []), original, puller)
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
57
        self.assertUnmerged(([('2', b'b', 0), ('3', b'c', 0)], []),
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
58
                            original, merger)
1551.15.70 by Aaron Bentley
Avoid using builtins.merge
59
        merger_tree.merge_from_branch(original)
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
60
        self.assertUnmerged(([('2', b'b', 0), ('3', b'c', 0)], []),
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
61
                            original, merger)
6855.4.1 by Jelmer Vernooij
Yet more bees.
62
        merger_tree.commit('d', rev_id=b'd')
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
63
        self.assertUnmerged(([], [('2', b'd', 0)]), original, merger)
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
64
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
65
    def test_iter_log_revisions(self):
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
66
        base_tree = self.make_branch_and_tree('base')
67
        self.build_tree(['base/a'])
6855.4.1 by Jelmer Vernooij
Yet more bees.
68
        base_tree.add(['a'], [b'a-id'])
69
        base_tree.commit('add a', rev_id=b'b-1')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
70
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
71
        child_tree = base_tree.controldir.sprout('child').open_workingtree()
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
72
73
        self.build_tree(['child/b'])
6855.4.1 by Jelmer Vernooij
Yet more bees.
74
        child_tree.add(['b'], [b'b-id'])
75
        child_tree.commit('adding b', rev_id=b'c-2')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
76
77
        child_tree.remove(['a'])
6855.4.1 by Jelmer Vernooij
Yet more bees.
78
        child_tree.commit('removing a', rev_id=b'c-3')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
79
6855.4.1 by Jelmer Vernooij
Yet more bees.
80
        self.build_tree_contents([('child/b', b'new contents for b\n')])
81
        child_tree.commit('modifying b', rev_id=b'c-4')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
82
83
        child_tree.rename_one('b', 'c')
6855.4.1 by Jelmer Vernooij
Yet more bees.
84
        child_tree.commit('rename b=>c', rev_id=b'c-5')
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
85
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
86
        base_extra, child_extra = missing.find_unmerged(base_tree.branch,
3677.1.4 by Vincent Ladeuil
Replace 'reverse' by 'backward' when talking about revision order.
87
                                                        child_tree.branch)
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
88
        results = list(iter_log_revisions(base_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
89
                                          base_tree.branch.repository,
90
                                          verbose=True))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
91
        self.assertEqual([], results)
92
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
93
        results = list(iter_log_revisions(child_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
94
                                          child_tree.branch.repository,
95
                                          verbose=True))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
96
        self.assertEqual(4, len(results))
97
6809.1.1 by Martin
Apply 2to3 ws_comma fixer
98
        r0, r1, r2, r3 = results
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
99
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
100
        self.assertEqual([('2', b'c-2'), ('3', b'c-3'),
7143.15.2 by Jelmer Vernooij
Run autopep8.
101
                          ('4', b'c-4'), ('5', b'c-5'), ],
3677.1.2 by Vincent Ladeuil
Fix tests broken by previous commit.
102
                         [(r.revno, r.rev.revision_id) for r in results])
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
103
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
104
        delta0 = r0.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
105
        self.assertNotEqual(None, delta0)
6973.13.2 by Jelmer Vernooij
Fix some more tests.
106
        self.assertEqual([('b', b'b-id', 'file')], delta0.added)
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
107
        self.assertEqual([], delta0.removed)
108
        self.assertEqual([], delta0.renamed)
109
        self.assertEqual([], delta0.modified)
110
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
111
        delta1 = r1.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
112
        self.assertNotEqual(None, delta1)
113
        self.assertEqual([], delta1.added)
6973.13.2 by Jelmer Vernooij
Fix some more tests.
114
        self.assertEqual([('a', b'a-id', 'file')], delta1.removed)
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
115
        self.assertEqual([], delta1.renamed)
116
        self.assertEqual([], delta1.modified)
117
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
118
        delta2 = r2.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
119
        self.assertNotEqual(None, delta2)
120
        self.assertEqual([], delta2.added)
121
        self.assertEqual([], delta2.removed)
122
        self.assertEqual([], delta2.renamed)
7143.15.2 by Jelmer Vernooij
Run autopep8.
123
        self.assertEqual(
124
            [('b', b'b-id', 'file', True, False)], delta2.modified)
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
125
2466.8.1 by Kent Gibson
Reworked LogFormatter API to simplify extending the attributes of the revision being logged. Added support for begin_log() and end_log() hooks in LogFormatters.
126
        delta3 = r3.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
127
        self.assertNotEqual(None, delta3)
128
        self.assertEqual([], delta3.added)
129
        self.assertEqual([], delta3.removed)
6973.13.2 by Jelmer Vernooij
Fix some more tests.
130
        self.assertEqual([('b', 'c', b'b-id', 'file', False, False)],
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
131
                         delta3.renamed)
132
        self.assertEqual([], delta3.modified)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
133
134
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
135
class TestFindUnmerged(tests.TestCaseWithTransport):
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
136
137
    def assertUnmerged(self, local, remote, local_branch, remote_branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
138
                       restrict='all', include_merged=False, backward=False,
139
                       local_revid_range=None, remote_revid_range=None):
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
140
        """Check the output of find_unmerged_mainline_revisions"""
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
141
        local_extra, remote_extra = missing.find_unmerged(
3921.3.7 by Marius Kruger
just filter the missing revisions once all have been calculated.
142
            local_branch, remote_branch, restrict,
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
143
            include_merged=include_merged, backward=backward,
3921.3.7 by Marius Kruger
just filter the missing revisions once all have been calculated.
144
            local_revid_range=local_revid_range,
145
            remote_revid_range=remote_revid_range)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
146
        self.assertEqual(local, local_extra)
147
        self.assertEqual(remote, remote_extra)
148
149
    def test_same_branch(self):
150
        tree = self.make_branch_and_tree('tree')
151
        rev1 = tree.commit('one')
152
        tree.lock_read()
153
        self.addCleanup(tree.unlock)
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
154
        self.assertUnmerged([], [], tree.branch, tree.branch)
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
155
        self.assertUnmerged([], [], tree.branch, tree.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
156
                            local_revid_range=(rev1, rev1))
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
157
158
    def test_one_ahead(self):
159
        tree = self.make_branch_and_tree('tree')
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
160
        tree.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
161
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
162
        rev2 = tree2.commit('two')
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
163
        self.assertUnmerged([], [('2', rev2, 0)], tree.branch, tree2.branch)
164
        self.assertUnmerged([('2', rev2, 0)], [], tree2.branch, tree.branch)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
165
166
    def test_restrict(self):
167
        tree = self.make_branch_and_tree('tree')
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
168
        tree.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
169
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
170
        rev2 = tree2.commit('two')
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
171
        self.assertUnmerged([], [('2', rev2, 0)], tree.branch, tree2.branch)
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
172
        self.assertUnmerged([], None, tree.branch, tree2.branch, 'local')
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
173
        self.assertUnmerged(None, [('2', rev2, 0)], tree.branch, tree2.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
174
                            'remote')
3427.3.1 by John Arbash Meinel
Add bzrlib.missing.find_unmerged_mainline_revisions
175
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
176
    def test_merged(self):
177
        tree = self.make_branch_and_tree('tree')
178
        rev1 = tree.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
179
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
180
        tree2.commit('two')
181
        tree2.commit('three')
3427.3.2 by John Arbash Meinel
switch find_unmerged to use the new function
182
        tree.merge_from_branch(tree2.branch)
183
        rev4 = tree.commit('four')
184
6719.1.4 by Jelmer Vernooij
Fix remaining tests.
185
        self.assertUnmerged([('2', rev4, 0)], [], tree.branch, tree2.branch)
186
        self.assertUnmerged([('2', rev4, 0)], [], tree.branch, tree2.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
187
                            local_revid_range=(rev4, rev4))
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
188
        self.assertUnmerged([], [], tree.branch, tree2.branch,
7143.15.2 by Jelmer Vernooij
Run autopep8.
189
                            local_revid_range=(rev1, rev1))
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
190
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
191
    def test_include_merged(self):
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
192
        tree = self.make_branch_and_tree('tree')
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
193
        tree.commit('one', rev_id=b'rev1')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
194
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
195
        tree2 = tree.controldir.sprout('tree2').open_workingtree()
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
196
        tree2.commit('two', rev_id=b'rev2')
6855.4.1 by Jelmer Vernooij
Yet more bees.
197
        rev3 = tree2.commit('three', rev_id=b'rev3')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
198
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
199
        tree3 = tree2.controldir.sprout('tree3').open_workingtree()
6855.4.1 by Jelmer Vernooij
Yet more bees.
200
        rev4 = tree3.commit('four', rev_id=b'rev4')
201
        rev5 = tree3.commit('five', rev_id=b'rev5')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
202
203
        tree2.merge_from_branch(tree3.branch)
6855.4.1 by Jelmer Vernooij
Yet more bees.
204
        rev6 = tree2.commit('six', rev_id=b'rev6')
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
205
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
206
        self.assertUnmerged([], [('2', b'rev2', 0), ('3', b'rev3', 0),
207
                                 ('4', b'rev6', 0),
208
                                 ('3.1.1', b'rev4', 1), ('3.1.2', b'rev5', 1),
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
209
                                 ],
3921.3.14 by Marius Kruger
put spaces after commas
210
                            tree.branch, tree2.branch,
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
211
                            include_merged=True)
3677.1.1 by Vincent Ladeuil
Begin fixing bug #233817.
212
7029.4.2 by Jelmer Vernooij
Fix more merge tests.
213
        self.assertUnmerged([], [('4', b'rev6', 0),
214
                                 ('3.1.2', b'rev5', 1), ('3.1.1', b'rev4', 1),
215
                                 ('3', b'rev3', 0), ('2', b'rev2', 0),
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
216
                                 ],
3921.3.14 by Marius Kruger
put spaces after commas
217
                            tree.branch, tree2.branch,
6123.11.14 by Martin von Gagern
Avoid using deprecated api in the unit tests for bzrlib.missing.
218
                            include_merged=True,
3677.1.8 by Vincent Ladeuil
Fixed as per jam's review.
219
                            backward=True)
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
220
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
221
        self.assertUnmerged(
222
            [], [('4', b'rev6', 0)],
223
            tree.branch, tree2.branch,
224
            include_merged=True, remote_revid_range=(rev6, rev6))
225
226
        self.assertUnmerged(
227
            [], [('3', b'rev3', 0), ('3.1.1', b'rev4', 1)],
228
            tree.branch, tree2.branch,
229
            include_merged=True, remote_revid_range=(rev3, rev4))
230
231
        self.assertUnmerged(
232
            [], [('4', b'rev6', 0), ('3.1.2', b'rev5', 1)],
233
            tree.branch, tree2.branch,
234
            include_merged=True, remote_revid_range=(rev5, rev6))
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
235
236
    def test_revision_range(self):
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
237
        local = self.make_branch_and_tree('local')
238
        lrevid1 = local.commit('one')
6653.6.1 by Jelmer Vernooij
Rename a number of attributes from bzrdir to controldir.
239
        remote = local.controldir.sprout('remote').open_workingtree()
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
240
        rrevid2 = remote.commit('two')
241
        rrevid3 = remote.commit('three')
242
        rrevid4 = remote.commit('four')
243
        lrevid2 = local.commit('two')
244
        lrevid3 = local.commit('three')
245
        lrevid4 = local.commit('four')
6719.1.2 by Jelmer Vernooij
Fix some tests.
246
        local_extra = [('2', lrevid2, 0), ('3', lrevid3, 0), ('4', lrevid4, 0)]
7143.15.2 by Jelmer Vernooij
Run autopep8.
247
        remote_extra = [('2', rrevid2, 0), ('3', rrevid3, 0),
248
                        ('4', rrevid4, 0)]
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
249
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
250
        # control
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
251
        self.assertUnmerged(local_extra, remote_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
252
                            local.branch, remote.branch)
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
253
        self.assertUnmerged(local_extra, remote_extra,
7143.15.2 by Jelmer Vernooij
Run autopep8.
254
                            local.branch, remote.branch, local_revid_range=(
255
                                None, None),
256
                            remote_revid_range=(None, None))
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
257
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
258
        # exclude local revisions
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
259
        self.assertUnmerged(
260
            [('2', lrevid2, 0)], remote_extra,
261
            local.branch, remote.branch, local_revid_range=(lrevid2, lrevid2))
262
        self.assertUnmerged(
263
            [('2', lrevid2, 0), ('3', lrevid3, 0)], remote_extra,
264
            local.branch, remote.branch, local_revid_range=(lrevid2, lrevid3))
265
        self.assertUnmerged(
266
            [('2', lrevid2, 0), ('3', lrevid3, 0)], None,
267
            local.branch, remote.branch, 'local',
268
            local_revid_range=(lrevid2, lrevid3))
3921.3.1 by Marius Kruger
* add support for specifying a revision range to missing.find_unmerged
269
3921.3.2 by Marius Kruger
* rename _get_revid_in_bounds() -> _get_revid_in_range()
270
        # exclude remote revisions
7143.15.5 by Jelmer Vernooij
More PEP8 fixes.
271
        self.assertUnmerged(
272
            local_extra, [('2', rrevid2, 0)],
273
            local.branch, remote.branch, remote_revid_range=(None, rrevid2))
274
        self.assertUnmerged(
275
            local_extra, [('2', rrevid2, 0)],
276
            local.branch, remote.branch, remote_revid_range=(lrevid1, rrevid2))
277
        self.assertUnmerged(
278
            local_extra, [('2', rrevid2, 0)],
279
            local.branch, remote.branch, remote_revid_range=(rrevid2, rrevid2))
280
        self.assertUnmerged(
281
            local_extra, [('2', rrevid2, 0), ('3', rrevid3, 0)],
282
            local.branch, remote.branch, remote_revid_range=(None, rrevid3))
283
        self.assertUnmerged(
284
            local_extra, [('2', rrevid2, 0), ('3', rrevid3, 0)],
285
            local.branch, remote.branch, remote_revid_range=(rrevid2, rrevid3))
286
        self.assertUnmerged(
287
            local_extra, [('3', rrevid3, 0)],
288
            local.branch, remote.branch, remote_revid_range=(rrevid3, rrevid3))
6719.1.2 by Jelmer Vernooij
Fix some tests.
289
        self.assertUnmerged(None, [('2', rrevid2, 0), ('3', rrevid3, 0)],
7143.15.2 by Jelmer Vernooij
Run autopep8.
290
                            local.branch, remote.branch, 'remote',
291
                            remote_revid_range=(rrevid2, rrevid3))
3921.3.7 by Marius Kruger
just filter the missing revisions once all have been calculated.
292
293
        # exclude local and remote revisions
6719.1.2 by Jelmer Vernooij
Fix some tests.
294
        self.assertUnmerged([('3', lrevid3, 0)], [('3', rrevid3, 0)],
7143.15.2 by Jelmer Vernooij
Run autopep8.
295
                            local.branch, remote.branch, local_revid_range=(
296
                                lrevid3, lrevid3),
297
                            remote_revid_range=(rrevid3, rrevid3))