41
41
class BranchStatus(TestCaseWithTransport):
43
def assertStatus(self, output_lines, working_tree,
45
"""Run status in working_tree and look for output.
47
:param output_lines: The lines to look for.
48
:param working_tree: The tree to run status in.
50
output_string = self.status_string(working_tree, revision)
51
self.assertEqual(output_lines, output_string.splitlines(True))
53
def status_string(self, wt, revision=None):
54
# use a real file rather than StringIO because it doesn't handle
56
tof = codecs.getwriter('utf-8')(TemporaryFile())
57
show_tree_status(wt, to_file=tof, revision=revision)
59
return tof.read().decode('utf-8')
43
61
def test_branch_status(self):
44
62
"""Test basic branch status"""
45
63
wt = self.make_branch_and_tree('.')
48
65
ignores._set_user_ignores(['./.bazaar'])
52
show_tree_status(wt, to_file=tof)
53
self.assertEquals(tof.getvalue(), "")
67
# status with no commits or files - it must
68
# work and show no output. We do this with no
69
# commits to be sure that it's not going to fail
71
self.assertStatus([], wt)
56
73
self.build_tree(['hello.c', 'bye.c'])
57
wt.add_pending_merge('pending@pending-0-0')
58
show_tree_status(wt, to_file=tof)
60
self.assertEquals(tof.readlines(),
65
' pending@pending-0-0\n'
81
# add a commit to allow showing pending merges.
82
wt.commit('create a parent to allow testing merge output')
84
wt.add_parent_tree_id('pending@pending-0-0')
90
' pending@pending-0-0\n',
68
94
def test_branch_status_revisions(self):
69
95
"""Tests branch status with revisions"""
70
96
wt = self.make_branch_and_tree('.')
73
98
ignores._set_user_ignores(['./.bazaar'])
76
100
self.build_tree(['hello.c', 'bye.c'])
79
103
wt.commit('Test message')
83
revs.append(RevisionSpec(0))
85
show_tree_status(wt, to_file=tof, revision=revs)
88
self.assertEquals(tof.readlines(),
105
revs = [RevisionSpec.from_string('0')]
93
114
self.build_tree(['more.c'])
95
116
wt.commit('Another test message')
98
revs.append(RevisionSpec(1))
100
show_tree_status(wt, to_file=tof, revision=revs)
103
self.assertEquals(tof.readlines(),
108
def status_string(self, wt):
109
# use a real file rather than StringIO because it doesn't handle
111
tof = codecs.getwriter('utf-8')(TemporaryFile())
112
show_tree_status(wt, to_file=tof)
114
return tof.read().decode('utf-8')
118
revs.append(RevisionSpec.from_string('1'))
116
127
def test_pending(self):
117
128
"""Pending merges display works, including Unicode"""