~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/teststatus.py

Merge in format-5 work - release bzr 0.1rc1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
 
24
24
from bzrlib.selftest import TestCaseInTempDir
 
25
from bzrlib.revisionspec import RevisionSpec
25
26
 
26
27
class BranchStatus(TestCaseInTempDir):
27
28
    
28
29
    def test_branch_status(self): 
29
 
        """Basic 'bzr mkdir' operation"""
 
30
        """Test basic branch status"""
30
31
        from cStringIO import StringIO
31
32
        from bzrlib.status import show_status
32
33
        from bzrlib.branch import Branch
33
34
        
34
 
        b = Branch('.', init=True)
 
35
        b = Branch.initialize('.')
35
36
 
36
37
        # status with nothing
37
38
        tof = StringIO()
51
52
                           '  pending@pending-0-0\n'
52
53
                           ])
53
54
 
 
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
 
 
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
 
101
        
 
102
        b = Branch.initialize('.')
 
103
 
 
104
        self.build_tree(['directory/','directory/hello.c', 'bye.c','test.c','dir2/'])
 
105
        b.add('directory')
 
106
        b.add('test.c')
 
107
        b.commit('testing')
 
108
        
 
109
        tof = StringIO()
 
110
        show_status(b, to_file=tof)
 
111
        tof.seek(0)
 
112
        self.assertEquals(tof.readlines(),
 
113
                          ['unknown:\n',
 
114
                           '  bye.c\n',
 
115
                           '  dir2\n',
 
116
                           '  directory/hello.c\n'
 
117
                           ])
 
118
 
 
119
        tof = StringIO()
 
120
        show_status(b, specific_files=['bye.c','test.c','absent.c'], to_file=tof)
 
121
        tof.seek(0)
 
122
        self.assertEquals(tof.readlines(),
 
123
                          ['unknown:\n',
 
124
                           '  bye.c\n'
 
125
                           ])
 
126
        
 
127
        tof = StringIO()
 
128
        show_status(b, specific_files=['directory'], to_file=tof)
 
129
        tof.seek(0)
 
130
        self.assertEquals(tof.readlines(),
 
131
                          ['unknown:\n',
 
132
                           '  directory/hello.c\n'
 
133
                           ])
 
134
        tof = StringIO()
 
135
        show_status(b, specific_files=['dir2'], to_file=tof)
 
136
        tof.seek(0)
 
137
        self.assertEquals(tof.readlines(),
 
138
                          ['unknown:\n',
 
139
                           '  dir2\n'
 
140
                           ])