~bzr-pqm/bzr/bzr.dev

5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
1
# Copyright (C) 2010 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
18
"""Black-box tests for bzr config."""
19
20
from bzrlib import (
21
    config,
22
    tests,
23
    )
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
24
from bzrlib.tests import (
25
    script,
26
    test_config as _t_config,
27
    )
6352.2.3 by Jelmer Vernooij
s/NoVfsCalls/ContainsNoVfsCalls/.
28
from bzrlib.tests.matchers import ContainsNoVfsCalls
6352.2.2 by Jelmer Vernooij
Use new NoVfsCalls matcher in blackbox tests.
29
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
30
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
31
class TestWithoutConfig(tests.TestCaseWithTransport):
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
32
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
33
    def test_config_all(self):
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
34
        out, err = self.run_bzr(['config'])
35
        self.assertEquals('', out)
36
        self.assertEquals('', err)
37
5506.2.2 by Vincent Ladeuil
Raise an error if the option doesn't exist and --active is used.
38
    def test_remove_unknown_option(self):
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
39
        self.run_bzr_error(['The "file" configuration option does not exist',],
40
                           ['config', '--remove', 'file'])
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
41
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
42
    def test_all_remove_exclusive(self):
43
        self.run_bzr_error(['--all and --remove are mutually exclusive.',],
44
                           ['config', '--remove', '--all'])
45
46
    def test_all_set_exclusive(self):
47
        self.run_bzr_error(['Only one option can be set.',],
48
                           ['config', '--all', 'hello=world'])
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
49
5506.2.2 by Vincent Ladeuil
Raise an error if the option doesn't exist and --active is used.
50
    def test_remove_no_option(self):
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
51
        self.run_bzr_error(['--remove expects an option to remove.',],
52
                           ['config', '--remove'])
53
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
54
    def test_unknown_option(self):
5506.2.2 by Vincent Ladeuil
Raise an error if the option doesn't exist and --active is used.
55
        self.run_bzr_error(['The "file" configuration option does not exist',],
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
56
                           ['config', 'file'])
57
58
    def test_unexpected_regexp(self):
59
        self.run_bzr_error(
60
            ['The "\*file" configuration option does not exist',],
61
            ['config', '*file'])
62
63
    def test_wrong_regexp(self):
64
        self.run_bzr_error(
65
            ['Invalid pattern\(s\) found. "\*file" nothing to repeat',],
66
            ['config', '--all', '*file'])
67
5506.2.2 by Vincent Ladeuil
Raise an error if the option doesn't exist and --active is used.
68
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
69
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
70
class TestConfigDisplay(tests.TestCaseWithTransport):
71
72
    def setUp(self):
73
        super(TestConfigDisplay, self).setUp()
74
        _t_config.create_configs(self)
75
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
76
    def test_multiline_all_values(self):
77
        self.bazaar_config.set_user_option('multiline', '1\n2\n')
5609.20.3 by Vincent Ladeuil
Fix pqm failures.
78
        # Fallout from bug 710410, the triple quotes have been toggled
79
        script.run_script(self, '''\
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
80
            $ bzr config -d tree
81
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
82
              [DEFAULT]
5609.20.3 by Vincent Ladeuil
Fix pqm failures.
83
              multiline = """1
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
84
            2
5609.20.3 by Vincent Ladeuil
Fix pqm failures.
85
            """
86
            ''')
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
87
88
    def test_multiline_value_only(self):
89
        self.bazaar_config.set_user_option('multiline', '1\n2\n')
5609.20.3 by Vincent Ladeuil
Fix pqm failures.
90
        # Fallout from bug 710410, the triple quotes have been toggled
91
        script.run_script(self, '''\
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
92
            $ bzr config -d tree multiline
5609.20.3 by Vincent Ladeuil
Fix pqm failures.
93
            """1
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
94
            2
5609.20.3 by Vincent Ladeuil
Fix pqm failures.
95
            """
96
            ''')
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
97
98
    def test_list_all_values(self):
6385.1.1 by Vincent Ladeuil
Stores allow Stacks to control when values are quoted/unquoted
99
        config.option_registry.register(config.ListOption('list'))
100
        self.addCleanup(config.option_registry.remove, 'list')
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
101
        self.bazaar_config.set_user_option('list', [1, 'a', 'with, a comma'])
102
        script.run_script(self, '''\
103
            $ bzr config -d tree
104
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
105
              [DEFAULT]
6385.1.1 by Vincent Ladeuil
Stores allow Stacks to control when values are quoted/unquoted
106
              list = 1, a, "with, a comma"
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
107
            ''')
108
109
    def test_list_value_only(self):
6385.1.1 by Vincent Ladeuil
Stores allow Stacks to control when values are quoted/unquoted
110
        config.option_registry.register(config.ListOption('list'))
111
        self.addCleanup(config.option_registry.remove, 'list')
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
112
        self.bazaar_config.set_user_option('list', [1, 'a', 'with, a comma'])
113
        script.run_script(self, '''\
114
            $ bzr config -d tree list
6385.1.1 by Vincent Ladeuil
Stores allow Stacks to control when values are quoted/unquoted
115
            1, a, "with, a comma"
5533.2.1 by Vincent Ladeuil
``bzr config`` properly displays list values
116
            ''')
117
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
118
    def test_bazaar_config(self):
119
        self.bazaar_config.set_user_option('hello', 'world')
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
120
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
121
            $ bzr config -d tree
122
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
123
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
124
              hello = world
125
            ''')
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
126
127
    def test_locations_config_for_branch(self):
128
        self.locations_config.set_user_option('hello', 'world')
129
        self.branch_config.set_user_option('hello', 'you')
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
130
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
131
            $ bzr config -d tree
132
            locations:
5533.1.1 by Vincent Ladeuil
Fix ``bzr config`` to respect policies when displaying values and also display sections when appropriate.
133
              [.../tree]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
134
              hello = world
135
            branch:
136
              hello = you
137
            ''')
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
138
139
    def test_locations_config_outside_branch(self):
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
140
        self.bazaar_config.set_user_option('hello', 'world')
5447.4.2 by Vincent Ladeuil
Implement the 'brz config' command. Read-only.
141
        self.locations_config.set_user_option('hello', 'world')
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
142
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
143
            $ bzr config
144
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
145
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
146
              hello = world
147
            ''')
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
148
6404.4.1 by Vincent Ladeuil
Properly support config.CommandLineStore in ``bzr config``
149
    def test_cmd_line(self):
150
        self.bazaar_config.set_user_option('hello', 'world')
151
        script.run_script(self, '''\
152
            $ bzr config -Ohello=bzr
153
            cmdline:
154
              hello = bzr
155
            bazaar:
156
              [DEFAULT]
157
              hello = world
158
            ''')
159
6385.1.1 by Vincent Ladeuil
Stores allow Stacks to control when values are quoted/unquoted
160
5533.1.1 by Vincent Ladeuil
Fix ``bzr config`` to respect policies when displaying values and also display sections when appropriate.
161
class TestConfigDisplayWithPolicy(tests.TestCaseWithTransport):
162
163
    def test_location_with_policy(self):
164
        # LocationConfig is the only one dealing with policies so far.
165
        self.make_branch_and_tree('tree')
166
        config_text = """\
167
[%(dir)s]
168
url = dir
169
url:policy = appendpath
170
[%(dir)s/tree]
171
url = tree
172
""" % {'dir': self.test_dir}
173
        # We don't use the config directly so we save it to disk
174
        config.LocationConfig.from_string(config_text, 'tree', save=True)
175
        # policies are displayed with their options since they are part of
176
        # their definition, likewise the path is not appended, we are just
177
        # presenting the relevant portions of the config files
178
        script.run_script(self, '''\
179
            $ bzr config -d tree --all url
180
            locations:
181
              [.../work/tree]
182
              url = tree
183
              [.../work]
184
              url = dir
185
              url:policy = appendpath
186
            ''')
187
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
188
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
189
class TestConfigActive(tests.TestCaseWithTransport):
190
191
    def setUp(self):
192
        super(TestConfigActive, self).setUp()
193
        _t_config.create_configs_with_file_option(self)
194
195
    def test_active_in_locations(self):
196
        script.run_script(self, '''\
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
197
            $ bzr config -d tree file
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
198
            locations
199
            ''')
200
201
    def test_active_in_bazaar(self):
202
        script.run_script(self, '''\
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
203
            $ bzr config -d tree --scope bazaar file
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
204
            bazaar
205
            ''')
206
207
    def test_active_in_branch(self):
208
        # We need to delete the locations definition that overrides the branch
209
        # one
210
        script.run_script(self, '''\
6260.3.1 by Vincent Ladeuil
Switch ``bzr config`` to the new config implementation
211
            $ bzr config -d tree --scope locations --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
212
            $ bzr config -d tree file
5506.2.1 by Vincent Ladeuil
Implements ``bzr config --active option`` displaying only the value.
213
            branch
214
            ''')
215
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
216
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
217
class TestConfigSetOption(tests.TestCaseWithTransport):
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
218
219
    def setUp(self):
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
220
        super(TestConfigSetOption, self).setUp()
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
221
        _t_config.create_configs(self)
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
222
223
    def test_unknown_config(self):
5447.4.10 by Vincent Ladeuil
Using dedicated exceptions feels cleaner.
224
        self.run_bzr_error(['The "moon" configuration does not exist'],
5447.4.17 by Vincent Ladeuil
Rename config --force to config --scope.
225
                           ['config', '--scope', 'moon', 'hello=world'])
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
226
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
227
    def test_bazaar_config_outside_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
228
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
229
            $ bzr config --scope bazaar hello=world
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
230
            $ bzr config -d tree --all hello
5447.4.20 by Vincent Ladeuil
Indent inplace files.
231
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
232
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
233
              hello = world
234
            ''')
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
235
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
236
    def test_bazaar_config_inside_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
237
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
238
            $ bzr config -d tree --scope bazaar hello=world
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
239
            $ bzr config -d tree --all hello
5447.4.20 by Vincent Ladeuil
Indent inplace files.
240
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
241
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
242
              hello = world
243
            ''')
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
244
245
    def test_locations_config_inside_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
246
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
247
            $ bzr config -d tree --scope locations hello=world
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
248
            $ bzr config -d tree --all hello
5447.4.20 by Vincent Ladeuil
Indent inplace files.
249
            locations:
5533.1.1 by Vincent Ladeuil
Fix ``bzr config`` to respect policies when displaying values and also display sections when appropriate.
250
              [.../work/tree]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
251
              hello = world
252
            ''')
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
253
254
    def test_branch_config_default(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
255
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
256
            $ bzr config -d tree hello=world
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
257
            $ bzr config -d tree --all hello
5447.4.20 by Vincent Ladeuil
Indent inplace files.
258
            branch:
259
              hello = world
260
            ''')
5447.4.5 by Vincent Ladeuil
Implement ``bzr config option=value``.
261
262
    def test_branch_config_forcing_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
263
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
264
            $ bzr config -d tree --scope branch hello=world
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
265
            $ bzr config -d tree --all hello
5447.4.20 by Vincent Ladeuil
Indent inplace files.
266
            branch:
267
              hello = world
268
            ''')
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
269
270
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
271
class TestConfigRemoveOption(tests.TestCaseWithTransport):
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
272
273
    def setUp(self):
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
274
        super(TestConfigRemoveOption, self).setUp()
5447.4.6 by Vincent Ladeuil
Start defining fixtures but we still have an unexpected sucessful test.
275
        _t_config.create_configs_with_file_option(self)
276
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
277
    def test_unknown_config(self):
278
        self.run_bzr_error(['The "moon" configuration does not exist'],
5447.4.17 by Vincent Ladeuil
Rename config --force to config --scope.
279
                           ['config', '--scope', 'moon', '--remove', 'file'])
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
280
281
    def test_bazaar_config_outside_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
282
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
283
            $ bzr config --scope bazaar --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
284
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
285
            locations:
5533.1.1 by Vincent Ladeuil
Fix ``bzr config`` to respect policies when displaying values and also display sections when appropriate.
286
              [.../work/tree]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
287
              file = locations
288
            branch:
289
              file = branch
290
            ''')
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
291
292
    def test_bazaar_config_inside_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
293
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
294
            $ bzr config -d tree --scope bazaar --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
295
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
296
            locations:
5533.1.1 by Vincent Ladeuil
Fix ``bzr config`` to respect policies when displaying values and also display sections when appropriate.
297
              [.../work/tree]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
298
              file = locations
299
            branch:
300
              file = branch
301
            ''')
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
302
303
    def test_locations_config_inside_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
304
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
305
            $ bzr config -d tree --scope locations --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
306
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
307
            branch:
308
              file = branch
309
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
310
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
311
              file = bazaar
312
            ''')
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
313
314
    def test_branch_config_default(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
315
        script.run_script(self, '''\
6260.3.1 by Vincent Ladeuil
Switch ``bzr config`` to the new config implementation
316
            $ bzr config -d tree --scope locations --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
317
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
318
            branch:
319
              file = branch
320
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
321
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
322
              file = bazaar
323
            ''')
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
324
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
325
            $ bzr config -d tree --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
326
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
327
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
328
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
329
              file = bazaar
330
            ''')
5447.4.11 by Vincent Ladeuil
Implement ``bzr config --remove <option>``.
331
332
    def test_branch_config_forcing_branch(self):
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
333
        script.run_script(self, '''\
5447.4.20 by Vincent Ladeuil
Indent inplace files.
334
            $ bzr config -d tree --scope branch --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
335
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
336
            locations:
5533.1.1 by Vincent Ladeuil
Fix ``bzr config`` to respect policies when displaying values and also display sections when appropriate.
337
              [.../work/tree]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
338
              file = locations
339
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
340
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
341
              file = bazaar
342
            ''')
5447.4.18 by Vincent Ladeuil
Use a coherent script syntax.
343
        script.run_script(self, '''\
6260.3.1 by Vincent Ladeuil
Switch ``bzr config`` to the new config implementation
344
            $ bzr config -d tree --scope locations --remove file
5506.2.3 by Vincent Ladeuil
Take review comments into account and drive-by fix bug #670251
345
            $ bzr config -d tree --all file
5447.4.20 by Vincent Ladeuil
Indent inplace files.
346
            bazaar:
6393.2.2 by Vincent Ladeuil
Display [DEFAULT] when reporting options from bazaar.conf.
347
              [DEFAULT]
5447.4.20 by Vincent Ladeuil
Indent inplace files.
348
              file = bazaar
349
            ''')
6270.1.2 by Jelmer Vernooij
Add test for number of roundtrips of 'bzr config -d'.
350
351
352
class TestSmartServerConfig(tests.TestCaseWithTransport):
353
354
    def test_simple_branch_config(self):
355
        self.setup_smart_server_with_call_log()
356
        t = self.make_branch_and_tree('branch')
357
        self.reset_smart_call_log()
358
        out, err = self.run_bzr(['config', '-d', self.get_url('branch')])
359
        # This figure represent the amount of work to perform this use case. It
360
        # is entirely ok to reduce this number if a test fails due to rpc_count
361
        # being too low. If rpc_count increases, more network roundtrips have
362
        # become necessary for this use case. Please do not adjust this number
363
        # upwards without agreement from bzr's network support maintainers.
364
        self.assertLength(5, self.hpss_calls)
6366.1.4 by Jelmer Vernooij
Test connection count calls for most blackbox commands.
365
        self.assertLength(1, self.hpss_connections)
6352.2.3 by Jelmer Vernooij
s/NoVfsCalls/ContainsNoVfsCalls/.
366
        self.assertThat(self.hpss_calls, ContainsNoVfsCalls)