24
from bzrlib.tests import TestCaseInTempDir
24
from bzrlib.selftest import TestCaseInTempDir
25
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
33
27
class BranchStatus(TestCaseInTempDir):
35
29
def test_branch_status(self):
36
"""Test basic branch status"""
30
"""Basic 'bzr mkdir' operation"""
37
31
from cStringIO import StringIO
38
32
from bzrlib.status import show_status
39
33
from bzrlib.branch import Branch
61
55
def test_branch_status_revisions(self):
62
56
"""Tests branch status with revisions"""
57
from cStringIO import StringIO
58
from bzrlib.status import show_status
59
from bzrlib.branch import Branch
64
61
b = Branch.initialize('.')
67
64
self.build_tree(['hello.c', 'bye.c'])
68
b.working_tree().add('hello.c')
69
b.working_tree().add('bye.c')
70
b.working_tree().commit('Test message')
67
b.commit('Test message')
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/'])
135
b.working_tree().add('directory')
136
b.working_tree().add('test.c')
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(),