/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/blackbox/test_ls.py

  • Committer: Jelmer Vernooij
  • Date: 2018-11-25 23:43:55 UTC
  • mfrom: (0.431.56 trunk)
  • mto: This revision was merged to the branch mainline in revision 7233.
  • Revision ID: jelmer@jelmer.uk-20181125234355-6ilaaiesyyor6lg0
Bundle the propose plugin.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2006-2012 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
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
"""External tests of 'bzr ls'"""
18
 
 
19
 
import os
20
 
 
21
 
from bzrlib import ignores, osutils
22
 
from bzrlib.tests import TestCaseWithTransport
23
 
 
24
 
 
25
 
class TestLS(TestCaseWithTransport):
 
17
"""External tests of 'brz ls'"""
 
18
 
 
19
from breezy import (
 
20
    ignores,
 
21
    tests,
 
22
    )
 
23
from breezy.tests.matchers import ContainsNoVfsCalls
 
24
 
 
25
 
 
26
class TestLS(tests.TestCaseWithTransport):
26
27
 
27
28
    def setUp(self):
28
29
        super(TestLS, self).setUp()
32
33
 
33
34
        self.wt = self.make_branch_and_tree('.')
34
35
        self.build_tree_contents([
35
 
                                 ('.bzrignore', '*.pyo\n'),
36
 
                                 ('a', 'hello\n'),
 
36
                                 ('.bzrignore', b'*.pyo\n'),
 
37
                                 ('a', b'hello\n'),
37
38
                                 ])
38
39
 
39
 
    def ls_equals(self, value, args=None, recursive=True):
 
40
    def ls_equals(self, value, args=None, recursive=True, working_dir=None):
40
41
        command = 'ls'
41
42
        if args is not None:
42
43
            command += ' ' + args
43
44
        if recursive:
44
45
            command += ' -R'
45
 
        out, err = self.run_bzr(command)
 
46
        out, err = self.run_bzr(command, working_dir=working_dir)
46
47
        self.assertEqual('', err)
47
48
        self.assertEqualDiff(value, out)
48
49
 
52
53
                           'ls --verbose --null')
53
54
 
54
55
    def test_ls_basic(self):
55
 
        """Test the abilities of 'bzr ls'"""
 
56
        """Test the abilities of 'brz ls'"""
56
57
        self.ls_equals('.bzrignore\na\n')
57
58
        self.ls_equals('.bzrignore\na\n', './')
58
59
        self.ls_equals('?        .bzrignore\n'
84
85
        self.build_tree(['subdir/'])
85
86
        self.ls_equals('?        .bzrignore\n'
86
87
                       'V        a\n'
87
 
                       '?        subdir/\n'
88
 
                       , '--verbose')
 
88
                       '?        subdir/\n', '--verbose')
89
89
        self.build_tree(['subdir/b'])
90
90
        self.wt.add(['subdir/', 'subdir/b', '.bzrignore'])
91
91
        self.ls_equals('V        .bzrignore\n'
92
92
                       'V        a\n'
93
93
                       'V        subdir/\n'
94
 
                       'V        subdir/b\n'
95
 
                       , '--verbose')
 
94
                       'V        subdir/b\n', '--verbose')
96
95
 
97
96
    def test_show_ids(self):
98
97
        self.build_tree(['subdir/'])
99
 
        self.wt.add(['a', 'subdir'], ['a-id', 'subdir-id'])
 
98
        self.wt.add(['a', 'subdir'], [b'a-id', b'subdir-id'])
100
99
        self.ls_equals(
101
100
            '.bzrignore                                         \n'
102
101
            'a                                                  a-id\n'
117
116
 
118
117
        self.ls_equals('.bzrignore\n'
119
118
                       'a\n'
120
 
                       'subdir/\n'
121
 
                       , recursive=False)
 
119
                       'subdir/\n', recursive=False)
122
120
 
123
121
        self.ls_equals('V        .bzrignore\n'
124
122
                       'V        a\n'
125
 
                       'V        subdir/\n'
126
 
                       , '--verbose', recursive=False)
 
123
                       'V        subdir/\n', '--verbose', recursive=False)
127
124
 
128
125
        # Check what happens in a sub-directory
129
 
        os.chdir('subdir')
130
 
        self.ls_equals('b\n')
131
 
        self.ls_equals('b\0'
132
 
                  , '--null')
133
 
        self.ls_equals('subdir/b\n'
134
 
                       , '--from-root')
135
 
        self.ls_equals('subdir/b\0'
136
 
                       , '--from-root --null')
137
 
        self.ls_equals('subdir/b\n'
138
 
                       , '--from-root', recursive=False)
 
126
        self.ls_equals('b\n', working_dir='subdir')
 
127
        self.ls_equals('b\0', '--null', working_dir='subdir')
 
128
        self.ls_equals('subdir/b\n', '--from-root', working_dir='subdir')
 
129
        self.ls_equals('subdir/b\0', '--from-root --null',
 
130
                       working_dir='subdir')
 
131
        self.ls_equals('subdir/b\n', '--from-root', recursive=False,
 
132
                       working_dir='subdir')
139
133
 
140
134
    def test_ls_path(self):
141
135
        """If a path is specified, files are listed with that prefix"""
142
136
        self.build_tree(['subdir/', 'subdir/b'])
143
137
        self.wt.add(['subdir', 'subdir/b'])
144
 
        self.ls_equals('subdir/b\n' ,
 
138
        self.ls_equals('subdir/b\n',
145
139
                       'subdir')
146
 
        os.chdir('subdir')
147
140
        self.ls_equals('../.bzrignore\n'
148
141
                       '../a\n'
149
142
                       '../subdir/\n'
150
 
                       '../subdir/b\n' ,
151
 
                       '..')
 
143
                       '../subdir/b\n',
 
144
                       '..', working_dir='subdir')
152
145
        self.ls_equals('../.bzrignore\0'
153
146
                       '../a\0'
154
147
                       '../subdir\0'
155
 
                       '../subdir/b\0' ,
156
 
                       '.. --null')
 
148
                       '../subdir/b\0',
 
149
                       '.. --null', working_dir='subdir')
157
150
        self.ls_equals('?        ../.bzrignore\n'
158
151
                       '?        ../a\n'
159
152
                       'V        ../subdir/\n'
160
 
                       'V        ../subdir/b\n' ,
161
 
                       '.. --verbose')
 
153
                       'V        ../subdir/b\n',
 
154
                       '.. --verbose', working_dir='subdir')
162
155
        self.run_bzr_error(['cannot specify both --from-root and PATH'],
163
 
                           'ls --from-root ..')
 
156
                           'ls --from-root ..', working_dir='subdir')
164
157
 
165
158
    def test_ls_revision(self):
166
159
        self.wt.add(['a'])
170
163
 
171
164
        # Check what happens when we supply a specific revision
172
165
        self.ls_equals('a\n', '--revision 1')
173
 
        self.ls_equals('V        a\n'
174
 
                       , '--verbose --revision 1')
 
166
        self.ls_equals('V        a\n', '--verbose --revision 1')
175
167
 
176
 
        os.chdir('subdir')
177
 
        self.ls_equals('', '--revision 1')
 
168
        self.ls_equals('', '--revision 1', working_dir='subdir')
178
169
 
179
170
    def test_ls_branch(self):
180
171
        """If a branch is specified, files are listed from it"""
205
196
                       'V        a\n'
206
197
                       '?        blah.py\n'
207
198
                       'I        blah.pyo\n'
208
 
                       'I        user-ignore\n'
209
 
                       , '--verbose')
 
199
                       'I        user-ignore\n', '--verbose')
210
200
        self.ls_equals('blah.pyo\n'
211
 
                       'user-ignore\n'
212
 
                       , '--ignored')
213
 
        self.ls_equals('blah.py\n'
214
 
                       , '--unknown')
215
 
        self.ls_equals('.bzrignore\n'
216
 
                       'a\n'
217
 
                       , '--versioned')
218
 
        self.ls_equals('.bzrignore\n'
219
 
                       'a\n'
220
 
                       , '-V')
 
201
                       'user-ignore\n', '--ignored')
 
202
        self.ls_equals('blah.py\n', '--unknown')
 
203
        self.ls_equals('.bzrignore\n'
 
204
                       'a\n', '--versioned')
 
205
        self.ls_equals('.bzrignore\n'
 
206
                       'a\n', '-V')
221
207
 
222
208
    def test_kinds(self):
223
209
        self.build_tree(['subdir/'])
244
230
        self.wt.commit('commit')
245
231
        self.ls_equals('sub/\nsub/file\n', '--directory=dir')
246
232
        self.ls_equals('sub/file\n', '-d dir sub')
 
233
 
 
234
 
 
235
class TestSmartServerLs(tests.TestCaseWithTransport):
 
236
 
 
237
    def test_simple_ls(self):
 
238
        self.setup_smart_server_with_call_log()
 
239
        t = self.make_branch_and_tree('branch')
 
240
        self.build_tree_contents([('branch/foo', b'thecontents')])
 
241
        t.add("foo")
 
242
        t.commit("message")
 
243
        self.reset_smart_call_log()
 
244
        out, err = self.run_bzr(['ls', self.get_url('branch')])
 
245
        # This figure represent the amount of work to perform this use case. It
 
246
        # is entirely ok to reduce this number if a test fails due to rpc_count
 
247
        # being too low. If rpc_count increases, more network roundtrips have
 
248
        # become necessary for this use case. Please do not adjust this number
 
249
        # upwards without agreement from bzr's network support maintainers.
 
250
        self.assertLength(6, self.hpss_calls)
 
251
        self.assertLength(1, self.hpss_connections)
 
252
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)