~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_log.py

Fixed blackbox log & missing tests to use internals (Watkins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
class TestLog(ExternalBase):
29
29
 
30
 
    def _prepare(self, format=None):
31
 
        if format:
32
 
            self.run_bzr(["init", "--format="+format])
33
 
        else:
34
 
            self.run_bzr("init")
35
 
        self.build_tree(['hello.txt', 'goodbye.txt', 'meep.txt'])
36
 
        self.run_bzr("add hello.txt")
37
 
        self.run_bzr("commit -m message1 hello.txt")
38
 
        self.run_bzr("add goodbye.txt")
39
 
        self.run_bzr("commit -m message2 goodbye.txt")
40
 
        self.run_bzr("add meep.txt")
41
 
        self.run_bzr("commit -m message3 meep.txt")
42
 
        self.full_log = self.run_bzr("log")[0]
 
30
    def _prepare(self, path='.', format=None):
 
31
        tree = self.make_branch_and_tree(path, format=format)
 
32
        self.build_tree(
 
33
            [path + '/hello.txt', path + '/goodbye.txt', path + '/meep.txt'])
 
34
        tree.add('hello.txt')
 
35
        tree.commit(message='message1')
 
36
        tree.add('goodbye.txt')
 
37
        tree.commit(message='message2')
 
38
        tree.add('meep.txt')
 
39
        tree.commit(message='message3')
 
40
        self.full_log = self.run_bzr(["log", path])[0]
 
41
        return tree
43
42
 
44
43
    def test_log_null_end_revspec(self):
45
44
        self._prepare()
100
99
                           ['log', '-r3..1'])
101
100
 
102
101
    def test_log_revno_n_path(self):
103
 
        os.mkdir('branch1')
104
 
        os.chdir('branch1')
105
 
        self._prepare()
106
 
        os.chdir('..')
107
 
        os.mkdir('branch2')
108
 
        os.chdir('branch2')
109
 
        self._prepare()
110
 
        os.chdir('..')
 
102
        self._prepare(path='branch1')
 
103
        self._prepare(path='branch2')
111
104
        log = self.run_bzr("log -r revno:2:branch1..revno:3:branch2",
112
105
                          retcode=3)[0]
113
106
        log = self.run_bzr("log -r revno:1:branch2..revno:3:branch2")[0]
127
120
            err, 'Path does not have any revision history: does-not-exist')
128
121
 
129
122
    def test_log_with_tags(self):
130
 
        self._prepare(format='dirstate-tags')
131
 
        self.run_bzr('tag -r1 tag1')
132
 
        self.run_bzr('tag -r1 tag1.1')
133
 
        self.run_bzr('tag tag3')
 
123
        tree = self._prepare(format='dirstate-tags')
 
124
        branch = tree.branch
 
125
        branch.tags.set_tag('tag1', branch.get_rev_id(1))
 
126
        branch.tags.set_tag('tag1.1', branch.get_rev_id(1))
 
127
        branch.tags.set_tag('tag3', branch.last_revision()) 
134
128
        
135
129
        log = self.run_bzr("log -r-1")[0]
136
130
        self.assertTrue('tags: tag3' in log)
141
135
        self.assertContainsRe(log, r'tags: (tag1, tag1\.1|tag1\.1, tag1)')
142
136
 
143
137
    def test_merged_log_with_tags(self):
144
 
        os.mkdir('branch1')
145
 
        os.chdir('branch1')
146
 
        self._prepare(format='dirstate-tags')
147
 
        os.chdir('..')
148
 
        self.run_bzr('branch branch1 branch2')
149
 
        os.chdir('branch1')
150
 
        self.run_bzr('commit -m foobar --unchanged')
151
 
        self.run_bzr('tag tag1')
152
 
        os.chdir('../branch2')
153
 
        self.run_bzr('merge ../branch1')
154
 
        self.run_bzr(['commit', '-m', 'merge branch 1'])
 
138
        branch1_tree = self._prepare(path='branch1', format='dirstate-tags')
 
139
        branch1 = branch1_tree.branch
 
140
        branch2_tree = branch1_tree.bzrdir.sprout('branch2').open_workingtree()
 
141
        branch1_tree.commit(message='foobar', allow_pointless=True)
 
142
        branch1.tags.set_tag('tag1', branch1.last_revision())
 
143
        os.chdir('branch2')
 
144
        self.run_bzr('merge ../branch1') # tags don't propagate otherwise
 
145
        branch2_tree.commit(message='merge branch 1')
155
146
        log = self.run_bzr("log -r-1")[0]
156
147
        self.assertContainsRe(log, r'    tags: tag1')
157
148
        log = self.run_bzr("log -r3.1.1")[0]
167
158
class TestLogMerges(ExternalBase):
168
159
 
169
160
    def _prepare(self):
170
 
        self.build_tree(['parent/'])
171
 
        self.run_bzr('init parent')
172
 
        self.run_bzr(['commit', '-m', 'first post', '--unchanged', 'parent'])
173
 
        self.run_bzr('branch parent child')
174
 
        self.run_bzr(['commit', '-m', 'branch 1', '--unchanged', 'child'])
175
 
        self.run_bzr('branch child smallerchild')
176
 
        self.run_bzr(['commit', '-m', 'branch 2', '--unchanged',
177
 
                      'smallerchild'])
178
 
        os.chdir('child')
179
 
        self.run_bzr('merge ../smallerchild')
180
 
        self.run_bzr(['commit', '-m', 'merge branch 2'])
181
 
        os.chdir('../parent')
182
 
        self.run_bzr('merge ../child')
183
 
        self.run_bzr(['commit', '-m', 'merge branch 1'])
 
161
        parent_tree = self.make_branch_and_tree('parent')
 
162
        parent_tree.commit(message='first post', allow_pointless=True)
 
163
        child_tree = parent_tree.bzrdir.sprout('child').open_workingtree()
 
164
        child_tree.commit(message='branch 1', allow_pointless=True)
 
165
        smaller_tree = \
 
166
                child_tree.bzrdir.sprout('smallerchild').open_workingtree()
 
167
        smaller_tree.commit(message='branch 2', allow_pointless=True)
 
168
        child_tree.merge_from_branch(smaller_tree.branch)
 
169
        child_tree.commit(message='merge branch 2')
 
170
        parent_tree.merge_from_branch(child_tree.branch)
 
171
        parent_tree.commit(message='merge branch 1')
 
172
        os.chdir('parent')
184
173
 
185
174
    def test_merges_are_indented_by_level(self):
186
175
        self._prepare()
438
427
        tree.commit('add file2')
439
428
        tree.add('file3')
440
429
        tree.commit('add file3')
441
 
        self.run_bzr('branch parent child')
442
 
        print >> file('child/file2', 'wb'), 'hello'
443
 
        self.run_bzr(['commit', '-m', 'branch 1', 'child'])
 
430
        child_tree = tree.bzrdir.sprout('child').open_workingtree()
 
431
        self.build_tree_contents([('child/file2', 'hello')])
 
432
        child_tree.commit(message='branch 1')
 
433
        tree.merge_from_branch(child_tree.branch)
 
434
        tree.commit(message='merge child branch')
444
435
        os.chdir('parent')
445
 
        self.run_bzr('merge ../child')
446
 
        self.run_bzr(['commit', '-m', 'merge child branch'])
447
436
        log = self.run_bzr('log file1')[0]
448
437
        self.assertContainsRe(log, 'revno: 1\n')
449
438
        self.assertNotContainsRe(log, 'revno: 2\n')