20
20
from bzrlib import log
21
21
from bzrlib.tests import BzrTestBase, TestCaseWithTransport
22
from bzrlib.log import (show_log,
22
from bzrlib.log import (show_log,
28
29
from bzrlib.branch import Branch
29
30
from bzrlib.errors import InvalidRevisionNumber
32
class _LogEntry(object):
33
# should probably move into bzrlib.log?
37
33
class LogCatcher(LogFormatter):
38
34
"""Pull log messages into list rather than displaying them.
44
40
We should also test the LogFormatter.
46
45
def __init__(self):
47
46
super(LogCatcher, self).__init__(to_file=None)
50
def show(self, revno, rev, delta):
49
def log_revision(self, revision):
50
self.logs.append(revision)
58
53
class SimpleLogTest(TestCaseWithTransport):
285
280
log_contents = logfile.read()
286
281
self.assertEqualDiff(log_contents, '1: Line-Log-Formatte... 2005-11-23 add a\n')
283
def test_short_log_with_merges(self):
284
wt = self.make_branch_and_memory_tree('.')
288
wt.commit('rev-1', rev_id='rev-1',
289
timestamp=1132586655, timezone=36000,
290
committer='Joe Foo <joe@foo.com>')
291
wt.commit('rev-merged', rev_id='rev-2a',
292
timestamp=1132586700, timezone=36000,
293
committer='Joe Foo <joe@foo.com>')
294
wt.set_parent_ids(['rev-1', 'rev-2a'])
295
wt.branch.set_last_revision_info(1, 'rev-1')
296
wt.commit('rev-2', rev_id='rev-2b',
297
timestamp=1132586800, timezone=36000,
298
committer='Joe Foo <joe@foo.com>')
300
formatter = ShortLogFormatter(to_file=logfile)
301
show_log(wt.branch, formatter)
303
self.assertEqualDiff("""\
304
2 Joe Foo\t2005-11-22 [merge]
307
1 Joe Foo\t2005-11-22
310
""", logfile.getvalue())
288
314
def make_tree_with_commits(self):
289
315
"""Create a tree with well-known revision ids"""
290
316
wt = self.make_branch_and_tree('tree1')