~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commands.py

  • Committer: Martin Packman
  • Date: 2012-02-01 13:24:42 UTC
  • mto: (6437.23.4 2.5)
  • mto: This revision was merged to the branch mainline in revision 6462.
  • Revision ID: martin.packman@canonical.com-20120201132442-ela7jc4mxv4b058o
Treat path for .bzr.log as unicode

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2012, 2016 Canonical Ltd
 
1
# Copyright (C) 2005-2011 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
25
25
    errors,
26
26
    option,
27
27
    tests,
28
 
    trace,
29
28
    )
30
29
from bzrlib.commands import display_command
31
30
from bzrlib.tests import TestSkipped
98
97
            # We override the run() command method so we can observe the
99
98
            # overrides from inside.
100
99
            c = config.GlobalStack()
101
 
            self.assertEqual('12', c.get('xx'))
102
 
            self.assertEqual('foo', c.get('yy'))
 
100
            self.assertEquals('12', c.get('xx'))
 
101
            self.assertEquals('foo', c.get('yy'))
103
102
        self.overrideAttr(builtins.cmd_rocks, 'run', run)
104
103
        self.run_bzr(['rocks', '-Oxx=12', '-Oyy=foo'])
105
104
        c = config.GlobalStack()
106
105
        # Ensure that we don't leak outside of the command
107
 
        self.assertEqual(None, c.get('xx'))
108
 
        self.assertEqual(None, c.get('yy'))
 
106
        self.assertEquals(None, c.get('xx'))
 
107
        self.assertEquals(None, c.get('yy'))
109
108
 
110
109
 
111
110
class TestInvokedAs(tests.TestCase):
117
116
        # get one from the real get_cmd_object.
118
117
        c = commands.get_cmd_object('ci')
119
118
        self.assertIsInstance(c, builtins.cmd_commit)
120
 
        self.assertEqual(c.invoked_as, 'ci')
 
119
        self.assertEquals(c.invoked_as, 'ci')
121
120
 
122
121
 
123
122
class TestGetAlias(tests.TestCase):
194
193
class TestRegisterLazy(tests.TestCase):
195
194
 
196
195
    def setUp(self):
197
 
        super(TestRegisterLazy, self).setUp()
 
196
        tests.TestCase.setUp(self)
198
197
        import bzrlib.tests.fake_command
199
198
        del sys.modules['bzrlib.tests.fake_command']
200
199
        global lazy_command_imported
371
370
        cmds = list(commands.all_command_names())
372
371
        self.assertEqual(['called'], hook_calls)
373
372
        self.assertSubset(['foo', 'bar'], cmds)
374
 
 
375
 
class TestPreAndPostCommandHooks(tests.TestCase):
376
 
    class TestError(StandardError):
377
 
        __doc__ = """A test exception."""
378
 
 
379
 
    def test_pre_and_post_hooks(self):
380
 
        hook_calls = []
381
 
 
382
 
        def pre_command(cmd):
383
 
            self.assertEqual([], hook_calls)
384
 
            hook_calls.append('pre')
385
 
 
386
 
        def post_command(cmd):
387
 
            self.assertEqual(['pre', 'run'], hook_calls)
388
 
            hook_calls.append('post')
389
 
 
390
 
        def run(cmd):
391
 
            self.assertEqual(['pre'], hook_calls)
392
 
            hook_calls.append('run')
393
 
 
394
 
        self.overrideAttr(builtins.cmd_rocks, 'run', run)
395
 
        commands.install_bzr_command_hooks()
396
 
        commands.Command.hooks.install_named_hook(
397
 
            "pre_command", pre_command, None)
398
 
        commands.Command.hooks.install_named_hook(
399
 
            "post_command", post_command, None)
400
 
 
401
 
        self.assertEqual([], hook_calls)
402
 
        self.run_bzr(['rocks', '-Oxx=12', '-Oyy=foo'])
403
 
        self.assertEqual(['pre', 'run', 'post'], hook_calls)
404
 
 
405
 
    def test_post_hook_provided_exception(self):
406
 
        hook_calls = []
407
 
 
408
 
        def post_command(cmd):
409
 
            hook_calls.append('post')
410
 
 
411
 
        def run(cmd):
412
 
            hook_calls.append('run')
413
 
            raise self.TestError()
414
 
 
415
 
        self.overrideAttr(builtins.cmd_rocks, 'run', run)
416
 
        commands.install_bzr_command_hooks()
417
 
        commands.Command.hooks.install_named_hook(
418
 
            "post_command", post_command, None)
419
 
 
420
 
        self.assertEqual([], hook_calls)
421
 
        self.assertRaises(self.TestError, commands.run_bzr, [u'rocks'])
422
 
        self.assertEqual(['run', 'post'], hook_calls)
423
 
 
424
 
    def test_pre_command_error(self):
425
 
        """Ensure an BzrCommandError in pre_command aborts the command"""
426
 
 
427
 
        hook_calls = []
428
 
 
429
 
        def pre_command(cmd):
430
 
            hook_calls.append('pre')
431
 
            # verify that all subclasses of BzrCommandError caught too
432
 
            raise errors.BzrOptionError()
433
 
 
434
 
        def post_command(cmd, e):
435
 
            self.fail('post_command should not be called')
436
 
 
437
 
        def run(cmd):
438
 
            self.fail('command should not be called')
439
 
 
440
 
        self.overrideAttr(builtins.cmd_rocks, 'run', run)
441
 
        commands.install_bzr_command_hooks()
442
 
        commands.Command.hooks.install_named_hook(
443
 
            "pre_command", pre_command, None)
444
 
        commands.Command.hooks.install_named_hook(
445
 
            "post_command", post_command, None)
446
 
 
447
 
        self.assertEqual([], hook_calls)
448
 
        self.assertRaises(errors.BzrCommandError,
449
 
                          commands.run_bzr, [u'rocks'])
450
 
        self.assertEqual(['pre'], hook_calls)
451