~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_status.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-06-03 20:18:35 UTC
  • mfrom: (1185.82.137 w-changeset)
  • Revision ID: pqm@pqm.ubuntu.com-20060603201835-1c9a1725641ccd24
Implement bundles

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2005, 2006 by Canonical Ltd
2
 
#
 
2
 
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
5
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
 
#
 
7
 
8
8
# This program is distributed in the hope that it will be useful,
9
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
11
# GNU General Public License for more details.
12
 
#
 
12
 
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
 
17
 
17
18
"""Tests of status command.
18
19
 
19
20
Most of these depend on the particular formatting used.
22
23
interface later, they will be non blackbox tests.
23
24
"""
24
25
 
 
26
 
25
27
from cStringIO import StringIO
26
 
import codecs
27
28
from os import mkdir, chdir
28
 
import sys
29
29
from tempfile import TemporaryFile
 
30
import codecs
30
31
 
31
 
from bzrlib import bzrdir, errors, ignores
32
32
import bzrlib.branch
33
33
from bzrlib.builtins import merge
 
34
import bzrlib.bzrdir as bzrdir
 
35
import bzrlib.errors as errors
34
36
from bzrlib.osutils import pathjoin
35
37
from bzrlib.revisionspec import RevisionSpec
36
38
from bzrlib.status import show_tree_status
37
 
from bzrlib.tests import TestCaseWithTransport, TestSkipped
 
39
from bzrlib.tests import TestCaseWithTransport
38
40
from bzrlib.workingtree import WorkingTree
39
41
 
40
42
 
41
43
class BranchStatus(TestCaseWithTransport):
42
44
    
43
 
    def test_branch_status(self):
 
45
    def test_branch_status(self): 
44
46
        """Test basic branch status"""
45
47
        wt = self.make_branch_and_tree('.')
46
48
        b = wt.branch
47
49
 
48
 
        ignores._set_user_ignores(['./.bazaar'])
49
 
 
50
50
        # status with nothing
51
51
        tof = StringIO()
52
52
        show_tree_status(wt, to_file=tof)
70
70
        wt = self.make_branch_and_tree('.')
71
71
        b = wt.branch
72
72
 
73
 
        ignores._set_user_ignores(['./.bazaar'])
74
 
 
75
73
        tof = StringIO()
76
74
        self.build_tree(['hello.c', 'bye.c'])
77
75
        wt.add('hello.c')
142
140
        wt = self.make_branch_and_tree('.')
143
141
        b = wt.branch
144
142
 
145
 
        ignores._set_user_ignores(['./.bazaar'])
146
 
 
147
143
        self.build_tree(['directory/','directory/hello.c', 'bye.c','test.c','dir2/'])
148
144
        wt.add('directory')
149
145
        wt.add('test.c')
204
200
class TestStatus(TestCaseWithTransport):
205
201
 
206
202
    def test_status(self):
207
 
        ignores._set_user_ignores(['./.bazaar'])
208
 
 
209
203
        self.run_bzr("init")
210
204
        self.build_tree(['hello.txt'])
211
205
        result = self.run_bzr("status")[0]
225
219
        self.assertEquals(result2, result)
226
220
 
227
221
 
228
 
class TestStatusEncodings(TestCaseWithTransport):
229
 
    
230
 
    def setUp(self):
231
 
        TestCaseWithTransport.setUp(self)
232
 
        self.user_encoding = bzrlib.user_encoding
233
 
        self.stdout = sys.stdout
234
 
 
235
 
    def tearDown(self):
236
 
        bzrlib.user_encoding = self.user_encoding
237
 
        sys.stdout = self.stdout
238
 
        TestCaseWithTransport.tearDown(self)
239
 
 
240
 
    def make_uncommitted_tree(self):
241
 
        """Build a branch with uncommitted unicode named changes in the cwd."""
242
 
        working_tree = self.make_branch_and_tree(u'.')
243
 
        filename = u'hell\u00d8'
244
 
        try:
245
 
            self.build_tree_contents([(filename, 'contents of hello')])
246
 
        except UnicodeEncodeError:
247
 
            raise TestSkipped("can't build unicode working tree in "
248
 
                "filesystem encoding %s" % sys.getfilesystemencoding())
249
 
        working_tree.add(filename)
250
 
        return working_tree
251
 
 
252
 
    def test_stdout_ascii(self):
253
 
        sys.stdout = StringIO()
254
 
        bzrlib.user_encoding = 'ascii'
255
 
        working_tree = self.make_uncommitted_tree()
256
 
        stdout, stderr = self.run_bzr("status")
257
 
 
258
 
        self.assertEquals(stdout, """\
259
 
added:
260
 
  hell?
261
 
""")
262
 
 
263
 
    def test_stdout_latin1(self):
264
 
        sys.stdout = StringIO()
265
 
        bzrlib.user_encoding = 'latin-1'
266
 
        working_tree = self.make_uncommitted_tree()
267
 
        stdout, stderr = self.run_bzr('status')
268
 
 
269
 
        self.assertEquals(stdout, u"""\
270
 
added:
271
 
  hell\u00d8
272
 
""".encode('latin-1'))
273