~juju/ubuntu/quantal/juju/0.6

« back to all changes in this revision

Viewing changes to juju/control/tests/test_admin.py

  • Committer: Martin Packman
  • Date: 2013-04-03 17:01:05 UTC
  • mfrom: (0.1.600 0.6)
  • Revision ID: martin.packman@canonical.com-20130403170105-pk2c8cgtsgaj8ykx
New upstream 0.6.1 release and fix history

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from juju import control
2
 
from juju.control import setup_logging, admin, setup_parser
3
 
 
4
 
from juju.lib.mocker import ANY
5
 
from .common import ControlToolTest
6
 
 
7
 
 
8
 
class DummySubcommand(object):
9
 
 
10
 
    @staticmethod
11
 
    def configure_subparser(subparsers):
12
 
        subparser = subparsers.add_parser("dummy")
13
 
        subparser.add_argument("--opt1", default=1)
14
 
        return subparser
15
 
 
16
 
    @staticmethod
17
 
    def command(*args):
18
 
        """Doc String"""
19
 
        pass
20
 
 
21
 
 
22
 
class AdminCommandOptionTest(ControlToolTest):
23
 
 
24
 
    def test_admin_subcommand_execution(self):
25
 
        """
26
 
        Setup an admin subcommand, and verify that's it invoked.
27
 
        """
28
 
        self.setup_cli_reactor()
29
 
        self.setup_exit(0)
30
 
 
31
 
        self.patch(control, "ADMIN_SUBCOMMANDS", [DummySubcommand])
32
 
        setup_logging_mock = self.mocker.mock(setup_logging)
33
 
        setup_parser_mock = self.mocker.proxy(setup_parser)
34
 
 
35
 
        self.patch(control, "setup_logging", setup_logging_mock)
36
 
        self.patch(control, "setup_parser", setup_parser_mock)
37
 
 
38
 
        command_mock = self.mocker.proxy(DummySubcommand.command)
39
 
        self.patch(DummySubcommand, "command", command_mock)
40
 
 
41
 
        setup_parser_mock(
42
 
            subcommands=ANY,
43
 
            prog="juju-admin",
44
 
            description="juju cloud orchestration internal tools")
45
 
        self.mocker.passthrough()
46
 
 
47
 
        setup_logging_mock(ANY)
48
 
        command_mock(ANY)
49
 
 
50
 
        self.mocker.passthrough()
51
 
        self.mocker.replay()
52
 
 
53
 
        admin(["dummy"])