~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_options.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-18 02:14:31 UTC
  • mfrom: (4158.2.1 integration)
  • Revision ID: pqm@pqm.ubuntu.com-20090318021431-md1n8o3542wwsvai
(mbp) merge back 1.13final to trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007 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
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
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
import re
18
18
 
19
19
from bzrlib import (
20
20
    bzrdir,
21
21
    commands,
22
 
    controldir,
23
22
    errors,
24
23
    option,
25
24
    )
103
102
        self.assertRaises(errors.BzrCommandError, self.parse, options,
104
103
                          ['--no-number'])
105
104
 
106
 
    def test_is_hidden(self):
107
 
        self.assertTrue(option.Option('foo', hidden=True).is_hidden('foo'))
108
 
        self.assertFalse(option.Option('foo', hidden=False).is_hidden('foo'))
109
 
 
110
105
    def test_registry_conversion(self):
111
 
        registry = controldir.ControlDirFormatRegistry()
112
 
        bzrdir.register_metadir(registry, 'one', 'RepositoryFormat7', 'one help')
113
 
        bzrdir.register_metadir(registry, 'two', 'RepositoryFormatKnit1', 'two help')
114
 
        bzrdir.register_metadir(registry, 'hidden', 'RepositoryFormatKnit1',
 
106
        registry = bzrdir.BzrDirFormatRegistry()
 
107
        registry.register_metadir('one', 'RepositoryFormat7', 'one help')
 
108
        registry.register_metadir('two', 'RepositoryFormatKnit1', 'two help')
 
109
        registry.register_metadir('hidden', 'RepositoryFormatKnit1',
115
110
            'two help', hidden=True)
116
111
        registry.set_default('one')
117
112
        options = [option.RegistryOption('format', '', registry, str)]
178
173
        self.assertEqual('test option', my_option.help)
179
174
 
180
175
    def test_help(self):
181
 
        registry = controldir.ControlDirFormatRegistry()
182
 
        bzrdir.register_metadir(registry, 'one', 'RepositoryFormat7', 'one help')
183
 
        bzrdir.register_metadir(registry, 'two',
 
176
        registry = bzrdir.BzrDirFormatRegistry()
 
177
        registry.register_metadir('one', 'RepositoryFormat7', 'one help')
 
178
        registry.register_metadir('two',
184
179
            'bzrlib.repofmt.knitrepo.RepositoryFormatKnit1',
185
180
            'two help',
186
181
            )
187
 
        bzrdir.register_metadir(registry, 'hidden', 'RepositoryFormat7', 'hidden help',
 
182
        registry.register_metadir('hidden', 'RepositoryFormat7', 'hidden help',
188
183
            hidden=True)
189
184
        registry.set_default('one')
190
185
        options = [option.RegistryOption('format', 'format help', registry,
206
201
        opt = option.Option('hello', help='fg', type=int, argname='gar')
207
202
        self.assertEqual(list(opt.iter_switches()),
208
203
                         [('hello', None, 'GAR', 'fg')])
209
 
        registry = controldir.ControlDirFormatRegistry()
210
 
        bzrdir.register_metadir(registry, 'one', 'RepositoryFormat7', 'one help')
211
 
        bzrdir.register_metadir(registry, 'two',
 
204
        registry = bzrdir.BzrDirFormatRegistry()
 
205
        registry.register_metadir('one', 'RepositoryFormat7', 'one help')
 
206
        registry.register_metadir('two',
212
207
                'bzrlib.repofmt.knitrepo.RepositoryFormatKnit1',
213
208
                'two help',
214
209
                )
319
314
        self.assertEqual('hello', name)
320
315
        self.assertEqual([], value)
321
316
 
322
 
    def test_list_option_param_name(self):
323
 
        """Test list options can have their param_name set."""
324
 
        options = [option.ListOption('hello', type=str, param_name='greeting')]
325
 
        opts, args = self.parse(
326
 
            options, ['--hello=world', '--hello=sailor'])
327
 
        self.assertEqual(['world', 'sailor'], opts.greeting)
328
 
 
329
317
 
330
318
class TestOptionDefinitions(TestCase):
331
319
    """Tests for options in the Bazaar codebase."""
332
320
 
333
321
    def get_builtin_command_options(self):
334
322
        g = []
335
 
        for cmd_name in sorted(commands.all_command_names()):
336
 
            cmd = commands.get_cmd_object(cmd_name)
 
323
        for cmd_name, cmd_class in sorted(commands.get_all_cmds()):
 
324
            cmd = cmd_class()
337
325
            for opt_name, opt in sorted(cmd.options().items()):
338
326
                g.append((cmd_name, opt))
339
327
        return g
346
334
        g = dict(option.Option.OPTIONS.items())
347
335
        used_globals = {}
348
336
        msgs = []
349
 
        for cmd_name in sorted(commands.all_command_names()):
350
 
            cmd = commands.get_cmd_object(cmd_name)
351
 
            for option_or_name in sorted(cmd.takes_options):
 
337
        for cmd_name, cmd_class in sorted(commands.get_all_cmds()):
 
338
            for option_or_name in sorted(cmd_class.takes_options):
352
339
                if not isinstance(option_or_name, basestring):
353
340
                    self.assertIsInstance(option_or_name, option.Option)
354
341
                elif not option_or_name in g:
355
342
                    msgs.append("apparent reference to undefined "
356
343
                        "global option %r from %r"
357
 
                        % (option_or_name, cmd))
 
344
                        % (option_or_name, cmd_class))
358
345
                else:
359
346
                    used_globals.setdefault(option_or_name, []).append(cmd_name)
360
347
        unused_globals = set(g.keys()) - set(used_globals.keys())
387
374
                    + '\n'.join(msgs))
388
375
 
389
376
    def test_is_hidden(self):
390
 
        registry = controldir.ControlDirFormatRegistry()
391
 
        bzrdir.register_metadir(registry, 'hidden', 'HiddenFormat',
 
377
        registry = bzrdir.BzrDirFormatRegistry()
 
378
        registry.register_metadir('hidden', 'HiddenFormat',
392
379
            'hidden help text', hidden=True)
393
 
        bzrdir.register_metadir(registry, 'visible', 'VisibleFormat',
 
380
        registry.register_metadir('visible', 'VisibleFormat',
394
381
            'visible help text', hidden=False)
395
382
        format = option.RegistryOption('format', '', registry, str)
396
383
        self.assertTrue(format.is_hidden('hidden'))