18
18
"""Tests of status command.
20
20
Most of these depend on the particular formatting used.
21
As such they really are blackbox tests even though some of the
22
tests are not using self.capture. If we add tests for the programmatic
23
interface later, they will be non blackbox tests.
26
29
from tempfile import TemporaryFile
29
from bzrlib.tests import TestCaseInTempDir
32
from bzrlib.builtins import merge
30
33
from bzrlib.revisionspec import RevisionSpec
31
from bzrlib.merge import merge
32
34
from bzrlib.status import show_status
33
from bzrlib.branch import Branch
34
from bzrlib.clone import copy_branch
36
class BranchStatus(TestCaseInTempDir):
35
from bzrlib.tests import TestCaseWithTransport
36
from bzrlib.workingtree import WorkingTree
39
class BranchStatus(TestCaseWithTransport):
38
41
def test_branch_status(self):
39
42
"""Test basic branch status"""
40
from bzrlib.status import show_status
41
from bzrlib.branch import Branch
43
b = Branch.initialize(u'.')
43
wt = self.make_branch_and_tree('.')
45
46
# status with nothing
51
52
self.build_tree(['hello.c', 'bye.c'])
52
b.working_tree().add_pending_merge('pending@pending-0-0')
53
wt.add_pending_merge('pending@pending-0-0')
53
54
show_status(b, to_file=tof)
55
56
self.assertEquals(tof.readlines(),
63
64
def test_branch_status_revisions(self):
64
65
"""Tests branch status with revisions"""
66
b = Branch.initialize(u'.')
66
wt = self.make_branch_and_tree('.')
69
70
self.build_tree(['hello.c', 'bye.c'])
70
b.working_tree().add('hello.c')
71
b.working_tree().add('bye.c')
72
b.working_tree().commit('Test message')
73
wt.commit('Test message')
86
87
self.build_tree(['more.c'])
87
b.working_tree().add('more.c')
88
b.working_tree().commit('Another test message')
89
wt.commit('Another test message')
91
92
revs.append(RevisionSpec(1))
109
110
def test_pending(self):
110
111
"""Pending merges display works, including Unicode"""
111
112
mkdir("./branch")
112
b = Branch.initialize('./branch')
113
b.working_tree().commit("Empty commit 1")
114
b_2 = copy_branch(b, './copy')
115
b.working_tree().commit(u"\N{TIBETAN DIGIT TWO} Empty commit 2")
113
wt = self.make_branch_and_tree('branch')
115
wt.commit("Empty commit 1")
116
b_2_dir = b.bzrdir.sprout('./copy')
117
b_2 = b_2_dir.open_branch()
118
wt2 = b_2_dir.open_workingtree()
119
wt.commit(u"\N{TIBETAN DIGIT TWO} Empty commit 2")
116
120
merge(["./branch", -1], [None, None], this_dir = './copy')
117
121
message = self.status_string(b_2)
118
122
self.assert_(message.startswith("pending merges:\n"))
119
123
self.assert_(message.endswith("Empty commit 2\n"))
120
b_2.working_tree().commit("merged")
121
125
# must be long to make sure we see elipsis at the end
122
b.working_tree().commit("Empty commit 3 " +
123
"blah blah blah blah " * 10)
126
wt.commit("Empty commit 3 " +
127
"blah blah blah blah " * 10)
124
128
merge(["./branch", -1], [None, None], this_dir = './copy')
125
129
message = self.status_string(b_2)
126
130
self.assert_(message.startswith("pending merges:\n"))
130
134
def test_branch_status_specific_files(self):
131
135
"""Tests branch status with given specific files"""
132
from cStringIO import StringIO
133
from bzrlib.status import show_status
134
from bzrlib.branch import Branch
136
b = Branch.initialize(u'.')
136
wt = self.make_branch_and_tree('.')
138
139
self.build_tree(['directory/','directory/hello.c', 'bye.c','test.c','dir2/'])
139
b.working_tree().add('directory')
140
b.working_tree().add('test.c')
141
b.working_tree().commit('testing')
144
145
show_status(b, to_file=tof)
178
class TestStatus(TestCaseWithTransport):
180
def test_status(self):
182
self.build_tree(['hello.txt'])
183
result = self.run_bzr("status")[0]
184
self.assert_("unknown:\n hello.txt\n" in result, result)
185
self.run_bzr("add", "hello.txt")
186
result = self.run_bzr("status")[0]
187
self.assert_("added:\n hello.txt\n" in result, result)
188
self.run_bzr("commit", "-m", "added")
189
result = self.run_bzr("status", "-r", "0..1")[0]
190
self.assert_("added:\n hello.txt\n" in result, result)
191
self.build_tree(['world.txt'])
192
result = self.run_bzr("status", "-r", "0")[0]
193
self.assert_("added:\n hello.txt\n" \
194
"unknown:\n world.txt\n" in result, result)
196
result2 = self.run_bzr("status", "-r", "0..")[0]
197
self.assertEquals(result2, result)