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)
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')")
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)
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='')" ")"))
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)
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)"))
def test_missing_required(self): """StatusInfo.__init__() has some required arguments.""" with self.assertRaises(TypeError): StatusInfo()
def test_all_defaults(self): """StatusInfo.__init__() has some default arguments.""" info = StatusInfo("active") self.assertEqual(info.current, "active") self.assertEqual(info.message, "")
def test_current_None(self): """StatusInfo.__init__() allows current to be None.""" info = StatusInfo(None) self.assertIs(info.current, None)
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")
# 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")