228
231
self.assertEquals(tof.readlines(), ['? dir2/\n'])
234
revs = [RevisionSpec.from_string('0'), RevisionSpec.from_string('1')]
235
show_tree_status(wt, specific_files=['test.c'], to_file=tof,
236
short=True, revision=revs)
238
self.assertEquals(tof.readlines(), ['+N test.c\n'])
240
def test_specific_files_conflicts(self):
241
tree = self.make_branch_and_tree('.')
242
self.build_tree(['dir2/'])
244
tree.commit('added dir2')
245
tree.set_conflicts(conflicts.ConflictList(
246
[conflicts.ContentsConflict('foo')]))
248
show_tree_status(tree, specific_files=['dir2'], to_file=tof)
249
self.assertEqualDiff('', tof.getvalue())
250
tree.set_conflicts(conflicts.ConflictList(
251
[conflicts.ContentsConflict('dir2')]))
253
show_tree_status(tree, specific_files=['dir2'], to_file=tof)
254
self.assertEqualDiff('conflicts:\n Contents conflict in dir2\n',
257
tree.set_conflicts(conflicts.ConflictList(
258
[conflicts.ContentsConflict('dir2/file1')]))
260
show_tree_status(tree, specific_files=['dir2'], to_file=tof)
261
self.assertEqualDiff('conflicts:\n Contents conflict in dir2/file1\n',
230
264
def test_status_nonexistent_file(self):
231
265
# files that don't exist in either the basis tree or working tree
232
266
# should give an error
233
267
wt = self.make_branch_and_tree('.')
234
out, err = self.run_bzr('status', 'does-not-exist', retcode=3)
268
out, err = self.run_bzr('status does-not-exist', retcode=3)
235
269
self.assertContainsRe(err, r'do not exist.*does-not-exist')
237
271
def test_status_out_of_date(self):
269
303
class TestStatus(TestCaseWithTransport):
271
305
def test_status_plain(self):
306
tree = self.make_branch_and_tree('.')
274
308
self.build_tree(['hello.txt'])
275
309
result = self.run_bzr("status")[0]
276
310
self.assertContainsRe(result, "unknown:\n hello.txt\n")
278
self.run_bzr("add", "hello.txt")
312
tree.add("hello.txt")
279
313
result = self.run_bzr("status")[0]
280
314
self.assertContainsRe(result, "added:\n hello.txt\n")
282
self.run_bzr("commit", "-m", "added")
283
result = self.run_bzr("status", "-r", "0..1")[0]
316
tree.commit(message="added")
317
result = self.run_bzr("status -r 0..1")[0]
318
self.assertContainsRe(result, "added:\n hello.txt\n")
320
result = self.run_bzr("status -c 1")[0]
284
321
self.assertContainsRe(result, "added:\n hello.txt\n")
286
323
self.build_tree(['world.txt'])
287
result = self.run_bzr("status", "-r", "0")[0]
324
result = self.run_bzr("status -r 0")[0]
288
325
self.assertContainsRe(result, "added:\n hello.txt\n" \
289
326
"unknown:\n world.txt\n")
290
result2 = self.run_bzr("status", "-r", "0..")[0]
327
result2 = self.run_bzr("status -r 0..")[0]
291
328
self.assertEquals(result2, result)
293
330
def test_status_short(self):
331
tree = self.make_branch_and_tree('.')
296
333
self.build_tree(['hello.txt'])
297
result = self.run_bzr("status","--short")[0]
334
result = self.run_bzr("status --short")[0]
298
335
self.assertContainsRe(result, "[?] hello.txt\n")
300
self.run_bzr("add", "hello.txt")
301
result = self.run_bzr("status","--short")[0]
337
tree.add("hello.txt")
338
result = self.run_bzr("status --short")[0]
302
339
self.assertContainsRe(result, "[+]N hello.txt\n")
304
self.run_bzr("commit", "-m", "added")
305
result = self.run_bzr("status", "--short", "-r", "0..1")[0]
341
tree.commit(message="added")
342
result = self.run_bzr("status --short -r 0..1")[0]
306
343
self.assertContainsRe(result, "[+]N hello.txt\n")
308
345
self.build_tree(['world.txt'])
309
result = self.run_bzr("status", "--short", "-r", "0")[0]
346
result = self.run_bzr("status --short -r 0")[0]
310
347
self.assertContainsRe(result, "[+]N hello.txt\n" \
311
348
"[?] world.txt\n")
312
result2 = self.run_bzr("status", "--short", "-r", "0..")[0]
349
result2 = self.run_bzr("status --short -r 0..")[0]
313
350
self.assertEquals(result2, result)
315
352
def test_status_versioned(self):
353
tree = self.make_branch_and_tree('.')
318
355
self.build_tree(['hello.txt'])
319
result = self.run_bzr("status", "--versioned")[0]
356
result = self.run_bzr("status --versioned")[0]
320
357
self.assertNotContainsRe(result, "unknown:\n hello.txt\n")
322
self.run_bzr("add", "hello.txt")
323
result = self.run_bzr("status", "--versioned")[0]
359
tree.add("hello.txt")
360
result = self.run_bzr("status --versioned")[0]
324
361
self.assertContainsRe(result, "added:\n hello.txt\n")
326
self.run_bzr("commit", "-m", "added")
327
result = self.run_bzr("status", "--versioned", "-r", "0..1")[0]
364
result = self.run_bzr("status --versioned -r 0..1")[0]
328
365
self.assertContainsRe(result, "added:\n hello.txt\n")
330
367
self.build_tree(['world.txt'])
331
result = self.run_bzr("status", "--versioned", "-r", "0")[0]
368
result = self.run_bzr("status --versioned -r 0")[0]
332
369
self.assertContainsRe(result, "added:\n hello.txt\n")
333
370
self.assertNotContainsRe(result, "unknown:\n world.txt\n")
334
result2 = self.run_bzr("status", "--versioned", "-r", "0..")[0]
371
result2 = self.run_bzr("status --versioned -r 0..")[0]
372
self.assertEquals(result2, result)
374
def test_status_SV(self):
375
tree = self.make_branch_and_tree('.')
377
self.build_tree(['hello.txt'])
378
result = self.run_bzr("status -SV")[0]
379
self.assertNotContainsRe(result, "hello.txt")
381
tree.add("hello.txt")
382
result = self.run_bzr("status -SV")[0]
383
self.assertContainsRe(result, "[+]N hello.txt\n")
385
tree.commit(message="added")
386
result = self.run_bzr("status -SV -r 0..1")[0]
387
self.assertContainsRe(result, "[+]N hello.txt\n")
389
self.build_tree(['world.txt'])
390
result = self.run_bzr("status -SV -r 0")[0]
391
self.assertContainsRe(result, "[+]N hello.txt\n")
393
result2 = self.run_bzr("status -SV -r 0..")[0]
335
394
self.assertEquals(result2, result)
337
396
def assertStatusContains(self, pattern):
338
397
"""Run status, and assert it contains the given pattern"""
339
result = self.run_bzr("status", "--short")[0]
398
result = self.run_bzr("status --short")[0]
340
399
self.assertContainsRe(result, pattern)
342
401
def test_kind_change_short(self):