/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
2052.3.2 by John Arbash Meinel
Change Copyright .. by Canonical to Copyright ... Canonical
1
# Copyright (C) 2005 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
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
16
17
import os
18
19
1534.4.28 by Robert Collins
first cut at merge from integration.
20
from bzrlib.builtins import merge
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.
21
from bzrlib.missing import(
22
    find_unmerged,
23
    iter_log_revisions,
24
    )
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
25
from bzrlib.tests import TestCaseWithTransport
26
from bzrlib.workingtree import WorkingTree
27
1534.4.28 by Robert Collins
first cut at merge from integration.
28
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
29
class TestMissing(TestCaseWithTransport):
30
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
31
    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.
32
        original_tree = self.make_branch_and_tree('original')
33
        original = original_tree.branch
34
        puller_tree = self.make_branch_and_tree('puller')
35
        puller = puller_tree.branch
36
        merger_tree = self.make_branch_and_tree('merger')
37
        merger = merger_tree.branch
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
38
        self.assertEqual(find_unmerged(original, puller), ([], []))
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
39
        original_tree.commit('a', rev_id='a')
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
40
        self.assertEqual(find_unmerged(original, puller), ([(1, u'a')], []))
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
41
        puller_tree.pull(original)
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
42
        self.assertEqual(find_unmerged(original, puller), ([], []))
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
43
        merger_tree.pull(original)
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
44
        original_tree.commit('b', rev_id='b')
45
        original_tree.commit('c', rev_id='c')
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
46
        self.assertEqual(find_unmerged(original, puller), ([(2, u'b'), 
47
                                                            (3, u'c')], []))
48
1666.1.4 by Robert Collins
* 'Metadir' is now the default disk format. This improves behaviour in
49
        puller_tree.pull(original)
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
50
        self.assertEqual(find_unmerged(original, puller), ([], []))
51
        self.assertEqual(find_unmerged(original, merger), ([(2, u'b'), 
52
                                                            (3, u'c')], []))
53
        merge(['original', -1], [None, None], this_dir='merger')
54
        self.assertEqual(find_unmerged(original, merger), ([(2, u'b'), 
55
                                                            (3, u'c')], []))
1534.4.26 by Robert Collins
Move working tree initialisation out from Branch.initialize, deprecated Branch.initialize to Branch.create.
56
        merger_tree.commit('d', rev_id='d')
1185.54.23 by Aaron Bentley
Added unit tests for find_unmerged
57
        self.assertEqual(find_unmerged(original, merger), ([], [(2, 'd')]))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
58
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.
59
    def test_iter_log_revisions(self):
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
60
        base_tree = self.make_branch_and_tree('base')
61
        self.build_tree(['base/a'])
62
        base_tree.add(['a'], ['a-id'])
63
        base_tree.commit('add a', rev_id='b-1')
64
65
        child_tree = base_tree.bzrdir.sprout('child').open_workingtree()
66
67
        self.build_tree(['child/b'])
68
        child_tree.add(['b'], ['b-id'])
69
        child_tree.commit('adding b', rev_id='c-2')
70
71
        child_tree.remove(['a'])
72
        child_tree.commit('removing a', rev_id='c-3')
73
74
        self.build_tree_contents([('child/b', 'new contents for b\n')])
75
        child_tree.commit('modifying b', rev_id='c-4')
76
77
        child_tree.rename_one('b', 'c')
78
        child_tree.commit('rename b=>c', rev_id='c-5')
79
80
        base_extra, child_extra = find_unmerged(base_tree.branch,
81
                                                child_tree.branch)
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.
82
        results = list(iter_log_revisions(base_extra, 
83
                            base_tree.branch.repository,
84
                            verbose=True))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
85
        self.assertEqual([], results)
86
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.
87
        results = list(iter_log_revisions(child_extra,
88
                            child_tree.branch.repository,
89
                            verbose=True))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
90
        self.assertEqual(4, len(results))
91
92
        r0,r1,r2,r3 = results
93
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.
94
        self.assertEqual((2, 'c-2'), (r0.revno, r0.rev.revision_id))
95
        self.assertEqual((3, 'c-3'), (r1.revno, r1.rev.revision_id))
96
        self.assertEqual((4, 'c-4'), (r2.revno, r2.rev.revision_id))
97
        self.assertEqual((5, 'c-5'), (r3.revno, r3.rev.revision_id))
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
98
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.
99
        delta0 = r0.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
100
        self.assertNotEqual(None, delta0)
101
        self.assertEqual([('b', 'b-id', 'file')], delta0.added)
102
        self.assertEqual([], delta0.removed)
103
        self.assertEqual([], delta0.renamed)
104
        self.assertEqual([], delta0.modified)
105
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.
106
        delta1 = r1.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
107
        self.assertNotEqual(None, delta1)
108
        self.assertEqual([], delta1.added)
109
        self.assertEqual([('a', 'a-id', 'file')], delta1.removed)
110
        self.assertEqual([], delta1.renamed)
111
        self.assertEqual([], delta1.modified)
112
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.
113
        delta2 = r2.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
114
        self.assertNotEqual(None, delta2)
115
        self.assertEqual([], delta2.added)
116
        self.assertEqual([], delta2.removed)
117
        self.assertEqual([], delta2.renamed)
118
        self.assertEqual([('b', 'b-id', 'file', True, False)], delta2.modified)
119
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.
120
        delta3 = r3.delta
2204.1.1 by John Arbash Meinel
'bzr missing -v' was showing adds as deletes.
121
        self.assertNotEqual(None, delta3)
122
        self.assertEqual([], delta3.added)
123
        self.assertEqual([], delta3.removed)
124
        self.assertEqual([('b', 'c', 'b-id', 'file', False, False)],
125
                         delta3.renamed)
126
        self.assertEqual([], delta3.modified)