Esempio n. 1
0
    def test_statusInfo(self):
        """UnitInfo.statusInfo is a backward-compatibility shim around
        workload_status.message."""
        agent_status = StatusInfo("active", "a-ok")
        workload_status = StatusInfo("maintenance", "")
        info = UnitInfo("spam/1", "spam", "trusty", "some-url", "localhost",
                        "localhost", "1", ["80"], agent_status,
                        workload_status)

        self.assertEqual(info.statusInfo, info.workload_status.message)
Esempio n. 2
0
    def test___repr__(self):
        """StatusInfo has a useful repr."""
        info = StatusInfo("active", "a-ok")
        result = repr(info)

        self.assertEqual(result,
                         "StatusInfo(current='active', message='a-ok')")
Esempio n. 3
0
    def test_statusInfo(self):
        """MachineInfo.statusInfo is a backward-compatibility shim around
        agent_status.message."""
        agent_status = StatusInfo("active", "a-ok")
        info = MachineInfo("1", agent_status=agent_status)

        self.assertEqual(info.statusInfo, info.agent_status.message)
Esempio n. 4
0
    def test___repr___full(self):
        """UnitInfo has a useful repr when initialized with all args."""
        agent_status = StatusInfo("active", "a-ok")
        workload_status = StatusInfo("maintenance", "")
        info = UnitInfo("spam/1", "spam", "trusty", "some-url", "localhost",
                        "localhost", "1", ["80"], agent_status,
                        workload_status)
        result = repr(info)

        self.assertEqual(
            result,
            ("UnitInfo(name='spam/1', applicationName='spam',"
             " series='trusty', charmURL='some-url',"
             " publicAddress='localhost', privateAddress='localhost',"
             " machineId='1', ports=['80'],"
             " agent_status=StatusInfo(current='active', message='a-ok'),"
             " workload_status=StatusInfo(current='maintenance', message='')"
             ")"))
Esempio n. 5
0
 def test_defaults(self):
     """A MachineInfo can be created with default values."""
     info = MachineInfo("1")
     self.assertEqual("1", info.id)
     self.assertEqual("", info.instanceId)
     self.assertEqual(StatusInfo("pending"), info.agent_status)
     self.assertEqual([], info.jobs)
     self.assertIsNone(info.address)
     self.assertIsNone(info.hasVote)
     self.assertIsNone(info.wantsVote)
Esempio n. 6
0
    def test___repr___full(self):
        """MachineInfo has a useful repr when initialized with all args."""
        agent_status = StatusInfo("active", "a-ok")
        info = MachineInfo("1", "inst1", agent_status, ["JobHostUnits"],
                           "localhost", False, True)
        result = repr(info)

        self.assertEqual(
            result,
            ("MachineInfo(id='1', instanceId='inst1',"
             " agent_status=StatusInfo(current='active', message='a-ok'),"
             " jobs=['JobHostUnits'], address='localhost',"
             " hasVote=False, wantsVote=True)"))
Esempio n. 7
0
 def test_missing_required(self):
     """StatusInfo.__init__() has some required arguments."""
     with self.assertRaises(TypeError):
         StatusInfo()
Esempio n. 8
0
    def test_all_defaults(self):
        """StatusInfo.__init__() has some default arguments."""
        info = StatusInfo("active")

        self.assertEqual(info.current, "active")
        self.assertEqual(info.message, "")
Esempio n. 9
0
    def test_current_None(self):
        """StatusInfo.__init__() allows current to be None."""
        info = StatusInfo(None)

        self.assertIs(info.current, None)
Esempio n. 10
0
    def test_all_args(self):
        """StatusInfo.__init__() works when provided all arguments."""
        info = StatusInfo("active", "a-ok")

        self.assertEqual(info.current, "active")
        self.assertEqual(info.message, "a-ok")
Esempio n. 11
0
# Copyright 2016 Canonical Limited.  All rights reserved.

from txjuju import status
from txjuju.api_data import StatusInfo


###########################################################
# The following are dummy status info that may be used
# in tests.  Note that ERROR and the middle 4 workload
# statuses have user-supplied messages.  All the others
# match what Juju produces during normal operation.

ERROR = StatusInfo(status.ERROR, "an error occurred")

# machine-agent-only
PENDING = StatusInfo(status.PENDING, "")
# See github.com/juju/juju/worker/provisioner/provisioner_task.go.
PENDING_RETRY = StatusInfo(
    status.PENDING, "will retry to start instance in 10s")
STARTED = StatusInfo(status.STARTED, "")
STOPPED = StatusInfo(status.STOPPED, "")
DOWN = StatusInfo(status.DOWN, "")

# unit-agent-only
ALLOCATING = StatusInfo(status.ALLOCATING, "waiting for machine")
REBOOTING = StatusInfo(status.REBOOTING, "")
EXECUTING = StatusInfo(status.EXECUTING, "running commands")
EXECUTING_HOOK = StatusInfo(status.EXECUTING, "running install hook")
EXECUTING_ACTION = StatusInfo(status.EXECUTING, "running action \"spam\"")
IDLE = StatusInfo(status.IDLE, "")
FAILED = StatusInfo(status.FAILED, "resolver loop error")