Improving unit tests for _do_sync_power_state

Improve the unit tets coverage, and tightening up existing
tests surrounding the _do_sync_power_state method.

Change-Id: I9fd4c4c42936fcf8fc4f36bf35b6e691c495b8b0
Closes-bug: #1297404
This commit is contained in:
Michael Davies 2014-06-07 00:46:59 +09:30
parent 9cf33b53ad
commit ef83e3a6fb
1 changed files with 20 additions and 0 deletions

View File

@ -1335,6 +1335,7 @@ class ManagerDoSyncPowerStateTestCase(tests_base.TestCase):
self.assertEqual(states.POWER_OFF, self.node.power_state)
self.assertEqual(1,
self.service.power_state_sync_count[self.node.uuid])
self.assertTrue(self.node.maintenance)
def test_max_retries_exceeded2(self, node_power_action):
self.config(force_power_state_during_sync=True, group='conductor')
@ -1354,6 +1355,7 @@ class ManagerDoSyncPowerStateTestCase(tests_base.TestCase):
self.assertEqual(states.POWER_OFF, self.node.power_state)
self.assertEqual(2,
self.service.power_state_sync_count[self.node.uuid])
self.assertTrue(self.node.maintenance)
def test_retry_then_success(self, node_power_action):
self.config(force_power_state_during_sync=True, group='conductor')
@ -1373,6 +1375,24 @@ class ManagerDoSyncPowerStateTestCase(tests_base.TestCase):
self.assertEqual(states.POWER_ON, self.node.power_state)
self.assertNotIn(self.node.uuid, self.service.power_state_sync_count)
def test_power_state_sync_max_retries_gps_exception(self,
node_power_action):
self.config(power_state_sync_max_retries=2, group='conductor')
self.service.power_state_sync_count[self.node.uuid] = 2
self._do_sync_power_state('fake',
exception.IronicException('foo'),
fail_change=True)
self.assertFalse(self.power.validate.called)
self.power.get_power_state.assert_called_once_with(self.task)
self.assertEqual(None, self.node.power_state)
self.assertTrue(self.node.maintenance)
self.assertTrue(self.node.save.called)
self.assertFalse(node_power_action.called)
@mock.patch.object(manager.ConductorManager, '_do_sync_power_state')
@mock.patch.object(task_manager, 'acquire')