41
41
class BranchStatus(TestCaseWithTransport):
43
def assertStatus(self, output_lines, working_tree,
43
def assertStatus(self, expected_lines, working_tree,
44
44
revision=None, short=False):
45
45
"""Run status in working_tree and look for output.
47
:param output_lines: The lines to look for.
47
:param expected_lines: The lines to look for.
48
48
:param working_tree: The tree to run status in.
50
50
output_string = self.status_string(working_tree, revision, short)
51
self.assertEqual(output_lines, output_string.splitlines(True))
51
self.assertEqual(expected_lines, output_string.splitlines(True))
53
53
def status_string(self, wt, revision=None, short=False):
54
54
# use a real file rather than StringIO because it doesn't handle
143
143
wt.commit(u"\N{TIBETAN DIGIT TWO} Empty commit 2")
144
144
merge(["./branch", -1], [None, None], this_dir = './copy')
145
145
message = self.status_string(wt2)
146
self.assert_(message.startswith("pending merges:\n"))
147
self.assert_(message.endswith("Empty commit 2\n"))
146
self.assertStartsWith(message, "pending merges:\n")
147
self.assertEndsWith(message, "Empty commit 2\n")
148
148
wt2.commit("merged")
149
149
# must be long to make sure we see elipsis at the end
150
wt.commit("Empty commit 3 " +
151
"blah blah blah blah " * 10)
150
wt.commit("Empty commit 3 " +
151
"blah blah blah blah " * 100)
152
152
merge(["./branch", -1], [None, None], this_dir = './copy')
153
153
message = self.status_string(wt2)
154
self.assert_(message.startswith("pending merges:\n"))
154
self.assertStartsWith(message, "pending merges:\n")
155
155
self.assert_("Empty commit 3" in message)
156
self.assert_(message.endswith("...\n"))
158
def test_branch_status_specific_files(self):
156
self.assertEndsWith(message, "...\n")
158
def test_tree_status_ignores(self):
159
"""Tests branch status with ignores"""
160
wt = self.make_branch_and_tree('.')
161
self.run_bzr('ignore', '*~')
162
wt.commit('commit .bzrignore')
163
self.build_tree(['foo.c', 'foo.c~'])
174
def test_tree_status_specific_files(self):
159
175
"""Tests branch status with given specific files"""
160
176
wt = self.make_branch_and_tree('.')
205
221
self.assertEquals(tof.readlines(),
210
226
show_tree_status(wt, specific_files=['dir2'], to_file=tof, short=True)
212
self.assertEquals(tof.readlines(), ['? dir2\n'])
228
self.assertEquals(tof.readlines(), ['? dir2/\n'])
214
230
def test_status_nonexistent_file(self):
215
231
# files that don't exist in either the basis tree or working tree
252
268
class TestStatus(TestCaseWithTransport):
254
def test_status(self):
270
def test_status_plain(self):
255
271
self.run_bzr("init")
257
273
self.build_tree(['hello.txt'])
258
274
result = self.run_bzr("status")[0]
259
self.assert_("unknown:\n hello.txt\n" in result, result)
260
result = self.run_bzr("status","--short")[0]
261
self.assertContainsRe(result, "[?] hello.txt\n")
275
self.assertContainsRe(result, "unknown:\n hello.txt\n")
263
277
self.run_bzr("add", "hello.txt")
264
278
result = self.run_bzr("status")[0]
265
279
self.assertContainsRe(result, "added:\n hello.txt\n")
266
result = self.run_bzr("status","--short")[0]
267
self.assertContainsRe(result, "[+]N hello.txt\n")
269
281
self.run_bzr("commit", "-m", "added")
270
282
result = self.run_bzr("status", "-r", "0..1")[0]
271
283
self.assertContainsRe(result, "added:\n hello.txt\n")
272
result = self.run_bzr("status", "--short", "-r", "0..1")[0]
273
self.assertContainsRe(result, "[+]N hello.txt\n")
275
285
self.build_tree(['world.txt'])
276
286
result = self.run_bzr("status", "-r", "0")[0]
278
288
"unknown:\n world.txt\n")
279
289
result2 = self.run_bzr("status", "-r", "0..")[0]
280
290
self.assertEquals(result2, result)
292
def test_status_short(self):
295
self.build_tree(['hello.txt'])
296
result = self.run_bzr("status","--short")[0]
297
self.assertContainsRe(result, "[?] hello.txt\n")
299
self.run_bzr("add", "hello.txt")
300
result = self.run_bzr("status","--short")[0]
301
self.assertContainsRe(result, "[+]N hello.txt\n")
303
self.run_bzr("commit", "-m", "added")
304
result = self.run_bzr("status", "--short", "-r", "0..1")[0]
305
self.assertContainsRe(result, "[+]N hello.txt\n")
307
self.build_tree(['world.txt'])
281
308
result = self.run_bzr("status", "--short", "-r", "0")[0]
282
309
self.assertContainsRe(result, "[+]N hello.txt\n" \
283
310
"[?] world.txt\n")
284
311
result2 = self.run_bzr("status", "--short", "-r", "0..")[0]
285
312
self.assertEquals(result2, result)
314
def test_status_versioned(self):
317
self.build_tree(['hello.txt'])
318
result = self.run_bzr("status", "--versioned")[0]
319
self.assertNotContainsRe(result, "unknown:\n hello.txt\n")
321
self.run_bzr("add", "hello.txt")
322
result = self.run_bzr("status", "--versioned")[0]
323
self.assertContainsRe(result, "added:\n hello.txt\n")
325
self.run_bzr("commit", "-m", "added")
326
result = self.run_bzr("status", "--versioned", "-r", "0..1")[0]
327
self.assertContainsRe(result, "added:\n hello.txt\n")
329
self.build_tree(['world.txt'])
330
result = self.run_bzr("status", "--versioned", "-r", "0")[0]
331
self.assertContainsRe(result, "added:\n hello.txt\n")
332
self.assertNotContainsRe(result, "unknown:\n world.txt\n")
333
result2 = self.run_bzr("status", "--versioned", "-r", "0..")[0]
334
self.assertEquals(result2, result)
287
336
def assertStatusContains(self, pattern):
288
337
"""Run status, and assert it contains the given pattern"""
289
338
result = self.run_bzr("status", "--short")[0]