From ef83e3a6fb6901efbc3156ea6e33320ec9f6d801 Mon Sep 17 00:00:00 2001 From: Michael Davies Date: Sat, 7 Jun 2014 00:46:59 +0930 Subject: [PATCH] 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 --- ironic/tests/conductor/test_manager.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ironic/tests/conductor/test_manager.py b/ironic/tests/conductor/test_manager.py index e6183d8e9c..2f253c231c 100644 --- a/ironic/tests/conductor/test_manager.py +++ b/ironic/tests/conductor/test_manager.py @@ -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')