45
45
class BranchStatus(TestCaseWithTransport):
47
47
def assertStatus(self, expected_lines, working_tree,
48
revision=None, short=False, pending=True):
48
revision=None, short=False, pending=True, verbose=False):
49
49
"""Run status in working_tree and look for output.
51
51
:param expected_lines: The lines to look for.
52
52
:param working_tree: The tree to run status in.
54
54
output_string = self.status_string(working_tree, revision, short,
56
56
self.assertEqual(expected_lines, output_string.splitlines(True))
58
def status_string(self, wt, revision=None, short=False, pending=True):
58
def status_string(self, wt, revision=None, short=False, pending=True,
59
60
# use a real file rather than StringIO because it doesn't handle
60
61
# Unicode very well.
61
62
tof = codecs.getwriter('utf-8')(TemporaryFile())
62
63
show_tree_status(wt, to_file=tof, revision=revision, short=short,
64
show_pending=pending, verbose=verbose)
65
66
return tof.read().decode('utf-8')
99
'pending merge tips: (use -v to see all merge revisions)\n',
100
' (ghost) pending@pending-0-0\n',
98
107
'pending merges:\n',
99
108
' (ghost) pending@pending-0-0\n',
102
111
self.assertStatus([
159
168
wt2 = b_2_dir.open_workingtree()
160
169
wt.commit(u"\N{TIBETAN DIGIT TWO} Empty commit 2")
161
170
wt2.merge_from_branch(wt.branch)
162
message = self.status_string(wt2)
171
message = self.status_string(wt2, verbose=True)
163
172
self.assertStartsWith(message, "pending merges:\n")
164
173
self.assertEndsWith(message, "Empty commit 2\n")
165
174
wt2.commit("merged")
167
176
wt.commit("Empty commit 3 " +
168
177
"blah blah blah blah " * 100)
169
178
wt2.merge_from_branch(wt.branch)
170
message = self.status_string(wt2)
179
message = self.status_string(wt2, verbose=True)
171
180
self.assertStartsWith(message, "pending merges:\n")
172
181
self.assert_("Empty commit 3" in message)
173
182
self.assertEndsWith(message, "...\n")
470
479
tree.merge_from_branch(alt.branch)
471
480
output = self.make_utf8_encoded_stringio()
472
481
show_tree_status(tree, to_file=output)
473
self.assertContainsRe(output.getvalue(), 'pending merges:')
482
self.assertContainsRe(output.getvalue(), 'pending merge')
474
483
out, err = self.run_bzr('status tree/a')
475
self.assertNotContainsRe(out, 'pending merges:')
484
self.assertNotContainsRe(out, 'pending merge')
478
487
class TestStatusEncodings(TestCaseWithTransport):