1
# Copyright (C) 2005 by Canonical Ltd
 
 
3
# This program is free software; you can redistribute it and/or modify
 
 
4
# it under the terms of the GNU General Public License as published by
 
 
5
# the Free Software Foundation; either version 2 of the License, or
 
 
6
# (at your option) any later version.
 
 
8
# This program is distributed in the hope that it will be useful,
 
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 
11
# GNU General Public License for more details.
 
 
13
# You should have received a copy of the GNU General Public License
 
 
14
# along with this program; if not, write to the Free Software
 
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 
18
"""Tests of status command.
 
 
20
Most of these depend on the particular formatting used.
 
 
24
from bzrlib.selftest import TestCaseInTempDir
 
 
25
from bzrlib.revisionspec import RevisionSpec
 
 
27
class BranchStatus(TestCaseInTempDir):
 
 
29
    def test_branch_status(self): 
 
 
30
        """Test basic branch status"""
 
 
31
        from cStringIO import StringIO
 
 
32
        from bzrlib.status import show_status
 
 
33
        from bzrlib.branch import Branch
 
 
35
        b = Branch.initialize('.')
 
 
39
        show_status(b, to_file=tof)
 
 
40
        self.assertEquals(tof.getvalue(), "")
 
 
43
        self.build_tree(['hello.c', 'bye.c'])
 
 
44
        b.add_pending_merge('pending@pending-0-0')
 
 
45
        show_status(b, to_file=tof)
 
 
47
        self.assertEquals(tof.readlines(),
 
 
52
                           '  pending@pending-0-0\n'
 
 
55
    def test_branch_status_revisions(self):
 
 
56
        """Tests branch status with revisions"""
 
 
57
        from cStringIO import StringIO
 
 
58
        from bzrlib.status import show_status
 
 
59
        from bzrlib.branch import Branch
 
 
61
        b = Branch.initialize('.')
 
 
64
        self.build_tree(['hello.c', 'bye.c'])
 
 
67
        b.commit('Test message')
 
 
71
        revs.append(RevisionSpec(0))
 
 
73
        show_status(b, to_file=tof, revision=revs)
 
 
76
        self.assertEquals(tof.readlines(),
 
 
81
        self.build_tree(['more.c'])
 
 
83
        b.commit('Another test message')
 
 
86
        revs.append(RevisionSpec(1))
 
 
88
        show_status(b, to_file=tof, revision=revs)
 
 
91
        self.assertEquals(tof.readlines(),
 
 
96
    def test_branch_status_specific_files(self): 
 
 
97
        """Tests branch status with given specific files"""
 
 
98
        from cStringIO import StringIO
 
 
99
        from bzrlib.status import show_status
 
 
100
        from bzrlib.branch import Branch
 
 
102
        b = Branch.initialize('.')
 
 
104
        self.build_tree(['directory/','directory/hello.c', 'bye.c','test.c','dir2/'])
 
 
110
        show_status(b, to_file=tof)
 
 
112
        self.assertEquals(tof.readlines(),
 
 
116
                           '  directory/hello.c\n'
 
 
120
        show_status(b, specific_files=['bye.c','test.c','absent.c'], to_file=tof)
 
 
122
        self.assertEquals(tof.readlines(),
 
 
128
        show_status(b, specific_files=['directory'], to_file=tof)
 
 
130
        self.assertEquals(tof.readlines(),
 
 
132
                           '  directory/hello.c\n'
 
 
135
        show_status(b, specific_files=['dir2'], to_file=tof)
 
 
137
        self.assertEquals(tof.readlines(),