24
24
from bzrlib.selftest import TestCaseInTempDir
25
from bzrlib.revisionspec import RevisionSpec
26
from bzrlib.merge import merge
27
from cStringIO import StringIO
28
from bzrlib.status import show_status
29
from bzrlib.branch import Branch
31
from bzrlib.clone import copy_branch
26
33
class BranchStatus(TestCaseInTempDir):
28
35
def test_branch_status(self):
29
"""Basic 'bzr mkdir' operation"""
36
"""Test basic branch status"""
30
37
from cStringIO import StringIO
31
38
from bzrlib.status import show_status
32
39
from bzrlib.branch import Branch
34
b = Branch('.', init=True)
41
b = Branch.initialize('.')
36
43
# status with nothing
51
58
' pending@pending-0-0\n'
61
def test_branch_status_revisions(self):
62
"""Tests branch status with revisions"""
64
b = Branch.initialize('.')
67
self.build_tree(['hello.c', 'bye.c'])
70
b.working_tree().commit('Test message')
74
revs.append(RevisionSpec(0))
76
show_status(b, to_file=tof, revision=revs)
79
self.assertEquals(tof.readlines(),
84
self.build_tree(['more.c'])
86
b.working_tree().commit('Another test message')
89
revs.append(RevisionSpec(1))
91
show_status(b, to_file=tof, revision=revs)
94
self.assertEquals(tof.readlines(),
99
def status_string(self, branch):
101
show_status(branch, to_file=tof)
103
return tof.getvalue()
105
def test_pending(self):
106
"""Pending merges display works"""
108
b = Branch.initialize('./branch')
109
b.working_tree().commit("Empty commit 1")
110
b_2 = copy_branch(b, './copy')
111
b.working_tree().commit("Empty commit 2")
112
merge(["./branch", -1], [None, None], this_dir = './copy')
113
message = self.status_string(b_2)
114
self.assert_(message.startswith("pending merges:\n"))
115
self.assert_(message.endswith("Empty commit 2\n"))
116
b_2.working_tree().commit("merged")
117
# must be long to make sure we see elipsis at the end
118
b.working_tree().commit("Empty commit 3 blah blah blah blah blah blah blah blah blah"
119
" blah blah blah blah blah blah bleh")
120
merge(["./branch", -1], [None, None], this_dir = './copy')
121
message = self.status_string(b_2)
122
self.assert_(message.startswith("pending merges:\n"))
123
self.assert_("Empty commit 3" in message)
124
self.assert_(message.endswith("...\n"))
126
def test_branch_status_specific_files(self):
127
"""Tests branch status with given specific files"""
128
from cStringIO import StringIO
129
from bzrlib.status import show_status
130
from bzrlib.branch import Branch
132
b = Branch.initialize('.')
134
self.build_tree(['directory/','directory/hello.c', 'bye.c','test.c','dir2/'])
137
b.working_tree().commit('testing')
140
show_status(b, to_file=tof)
142
self.assertEquals(tof.readlines(),
146
' directory/hello.c\n'
150
show_status(b, specific_files=['bye.c','test.c','absent.c'], to_file=tof)
152
self.assertEquals(tof.readlines(),
158
show_status(b, specific_files=['directory'], to_file=tof)
160
self.assertEquals(tof.readlines(),
162
' directory/hello.c\n'
165
show_status(b, specific_files=['dir2'], to_file=tof)
167
self.assertEquals(tof.readlines(),