~bzr-pqm/bzr/bzr.dev

915 by Martin Pool
- add simple test case for bzr status
1
# Copyright (C) 2005 by Canonical Ltd
2
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.
7
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.
12
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
16
17
18
"""Tests of status command.
19
20
Most of these depend on the particular formatting used.
21
"""
22
23
1141 by Martin Pool
- rename FunctionalTest to TestCaseInTempDir
24
from bzrlib.selftest import TestCaseInTempDir
1185.1.35 by Robert Collins
Heikki Paajanen's status -r patch
25
from bzrlib.revisionspec import RevisionSpec
915 by Martin Pool
- add simple test case for bzr status
26
1141 by Martin Pool
- rename FunctionalTest to TestCaseInTempDir
27
class BranchStatus(TestCaseInTempDir):
1102 by Martin Pool
- merge test refactoring from robertc
28
    
29
    def test_branch_status(self): 
915 by Martin Pool
- add simple test case for bzr status
30
        """Basic 'bzr mkdir' operation"""
31
        from cStringIO import StringIO
32
        from bzrlib.status import show_status
33
        from bzrlib.branch import Branch
34
        
1185.2.9 by Lalo Martins
getting rid of everything that calls the Branch constructor directly
35
        b = Branch.initialize('.')
915 by Martin Pool
- add simple test case for bzr status
36
37
        # status with nothing
38
        tof = StringIO()
39
        show_status(b, to_file=tof)
40
        self.assertEquals(tof.getvalue(), "")
41
42
        tof = StringIO()
43
        self.build_tree(['hello.c', 'bye.c'])
974.1.48 by Aaron Bentley
Status command shows pending merges
44
        b.add_pending_merge('pending@pending-0-0')
915 by Martin Pool
- add simple test case for bzr status
45
        show_status(b, to_file=tof)
46
        tof.seek(0)
47
        self.assertEquals(tof.readlines(),
48
                          ['unknown:\n',
49
                           '  bye.c\n',
50
                           '  hello.c\n',
974.1.48 by Aaron Bentley
Status command shows pending merges
51
                           'pending merges:\n',
52
                           '  pending@pending-0-0\n'
915 by Martin Pool
- add simple test case for bzr status
53
                           ])
54
1185.1.35 by Robert Collins
Heikki Paajanen's status -r patch
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
60
        
61
        b = Branch.initialize('.')
62
63
        tof = StringIO()
64
        self.build_tree(['hello.c', 'bye.c'])
65
        b.add('hello.c')
66
        b.add('bye.c')
67
        b.commit('Test message')
68
69
        tof = StringIO()
70
        revs =[]
71
        revs.append(RevisionSpec(0))
72
        
73
        show_status(b, to_file=tof, revision=revs)
74
        
75
        tof.seek(0)
76
        self.assertEquals(tof.readlines(),
77
                          ['added:\n',
78
                           '  bye.c\n',
79
                           '  hello.c\n'])
80
81
        self.build_tree(['more.c'])
82
        b.add('more.c')
83
        b.commit('Another test message')
84
        
85
        tof = StringIO()
86
        revs.append(RevisionSpec(1))
87
        
88
        show_status(b, to_file=tof, revision=revs)
89
        
90
        tof.seek(0)
91
        self.assertEquals(tof.readlines(),
92
                          ['added:\n',
93
                           '  bye.c\n',
94
                           '  hello.c\n'])
95