~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: 2010-07-07 04:03:32 UTC
  • mfrom: (5335.2.3 doc)
  • Revision ID: pqm@pqm.ubuntu.com-20100707040332-we60v2hsd39rumlr
(mbp) developer docs about testing (Martin Pool)

Show diffs side-by-side

added added

removed removed

Lines of Context:
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
import re
18
18
 
42
42
        # to cmd_commit, when they are meant to be about option parsing in
43
43
        # general.
44
44
        self.assertEqual(parse_args(cmd_commit(), ['--help']),
45
 
           ([], {'exclude': [], 'fixes': [], 'help': True}))
 
45
           ([], {'author': [], 'exclude': [], 'fixes': [], 'help': True}))
46
46
        self.assertEqual(parse_args(cmd_commit(), ['--message=biter']),
47
 
           ([], {'exclude': [], 'fixes': [], 'message': 'biter'}))
 
47
           ([], {'author': [], 'exclude': [], 'fixes': [], 'message': 'biter'}))
48
48
 
49
49
    def test_no_more_opts(self):
50
50
        """Terminated options"""
51
51
        self.assertEqual(parse_args(cmd_commit(), ['--', '-file-with-dashes']),
52
 
                          (['-file-with-dashes'], {'exclude': [], 'fixes': []}))
 
52
                          (['-file-with-dashes'], {'author': [], 'exclude': [], 'fixes': []}))
53
53
 
54
54
    def test_option_help(self):
55
55
        """Options have help strings."""
102
102
        self.assertRaises(errors.BzrCommandError, self.parse, options,
103
103
                          ['--no-number'])
104
104
 
 
105
    def test_is_hidden(self):
 
106
        self.assertTrue(option.Option('foo', hidden=True).is_hidden('foo'))
 
107
        self.assertFalse(option.Option('foo', hidden=False).is_hidden('foo'))
 
108
 
105
109
    def test_registry_conversion(self):
106
110
        registry = bzrdir.BzrDirFormatRegistry()
107
111
        registry.register_metadir('one', 'RepositoryFormat7', 'one help')
314
318
        self.assertEqual('hello', name)
315
319
        self.assertEqual([], value)
316
320
 
 
321
    def test_list_option_param_name(self):
 
322
        """Test list options can have their param_name set."""
 
323
        options = [option.ListOption('hello', type=str, param_name='greeting')]
 
324
        opts, args = self.parse(
 
325
            options, ['--hello=world', '--hello=sailor'])
 
326
        self.assertEqual(['world', 'sailor'], opts.greeting)
 
327
 
317
328
 
318
329
class TestOptionDefinitions(TestCase):
319
330
    """Tests for options in the Bazaar codebase."""
320
331
 
321
332
    def get_builtin_command_options(self):
322
333
        g = []
323
 
        for cmd_name, cmd_class in sorted(commands.get_all_cmds()):
324
 
            cmd = cmd_class()
 
334
        for cmd_name in sorted(commands.all_command_names()):
 
335
            cmd = commands.get_cmd_object(cmd_name)
325
336
            for opt_name, opt in sorted(cmd.options().items()):
326
337
                g.append((cmd_name, opt))
327
338
        return g
334
345
        g = dict(option.Option.OPTIONS.items())
335
346
        used_globals = {}
336
347
        msgs = []
337
 
        for cmd_name, cmd_class in sorted(commands.get_all_cmds()):
338
 
            for option_or_name in sorted(cmd_class.takes_options):
 
348
        for cmd_name in sorted(commands.all_command_names()):
 
349
            cmd = commands.get_cmd_object(cmd_name)
 
350
            for option_or_name in sorted(cmd.takes_options):
339
351
                if not isinstance(option_or_name, basestring):
340
352
                    self.assertIsInstance(option_or_name, option.Option)
341
353
                elif not option_or_name in g:
342
354
                    msgs.append("apparent reference to undefined "
343
355
                        "global option %r from %r"
344
 
                        % (option_or_name, cmd_class))
 
356
                        % (option_or_name, cmd))
345
357
                else:
346
358
                    used_globals.setdefault(option_or_name, []).append(cmd_name)
347
359
        unused_globals = set(g.keys()) - set(used_globals.keys())