summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-02-10 19:47:45 +0000
committerGerrit Code Review <review@openstack.org>2017-02-10 19:47:45 +0000
commit622ab95ffdb48b0254adc1588fb07c406021017e (patch)
tree3c63136ebcfa5acb34a00b2cae275df5fed3e5f7
parent94bbbf860a87e54ea872d3a619f65e190d894b02 (diff)
parentdd2a85af09f4274f95466c657f85e0e08f52903e (diff)
downloadironic-622ab95ffdb48b0254adc1588fb07c406021017e.tar.gz
Merge "Mock client initializations for irmc and oneview"
-rw-r--r--ironic/tests/unit/drivers/modules/irmc/test_power.py5
-rw-r--r--ironic/tests/unit/drivers/third_party_driver_mocks.py15
2 files changed, 15 insertions, 5 deletions
diff --git a/ironic/tests/unit/drivers/modules/irmc/test_power.py b/ironic/tests/unit/drivers/modules/irmc/test_power.py
index ee54970c8..5f7f85e19 100644
--- a/ironic/tests/unit/drivers/modules/irmc/test_power.py
+++ b/ironic/tests/unit/drivers/modules/irmc/test_power.py
@@ -260,9 +260,12 @@ class IRMCPowerInternalMethodsTestCase(db_base.DbTestCase):
@mock.patch.object(irmc_power, '_wait_power_state', spec_set=True,
autospec=True)
+ @mock.patch.object(irmc_common, 'get_irmc_client', spec_set=True,
+ autospec=True)
@mock.patch.object(irmc_boot, 'attach_boot_iso_if_needed')
def test__set_power_state_snmp_exception(self,
attach_boot_iso_if_needed_mock,
+ get_irmc_client_mock,
_wait_power_state_mock):
target_state = states.SOFT_REBOOT
_wait_power_state_mock.side_effect = exception.SNMPFailure(
@@ -276,6 +279,8 @@ class IRMCPowerInternalMethodsTestCase(db_base.DbTestCase):
target_state)
attach_boot_iso_if_needed_mock.assert_called_once_with(
task)
+ get_irmc_client_mock.return_value.assert_called_once_with(
+ irmc_power.STATES_MAP[target_state])
_wait_power_state_mock.assert_called_once_with(
task, target_state, timeout=None)
diff --git a/ironic/tests/unit/drivers/third_party_driver_mocks.py b/ironic/tests/unit/drivers/third_party_driver_mocks.py
index 5c1a373e6..817fec03d 100644
--- a/ironic/tests/unit/drivers/third_party_driver_mocks.py
+++ b/ironic/tests/unit/drivers/third_party_driver_mocks.py
@@ -94,9 +94,6 @@ if not oneview_client:
oneview_client = mock.MagicMock(spec_set=mock_specs.ONEVIEWCLIENT_SPEC)
sys.modules['oneview_client'] = oneview_client
sys.modules['oneview_client.client'] = oneview_client.client
- sys.modules['oneview_client.client.Client'] = mock.MagicMock(
- spec_set=mock_specs.ONEVIEWCLIENT_CLIENT_CLS_SPEC
- )
states = mock.MagicMock(
spec_set=mock_specs.ONEVIEWCLIENT_STATES_SPEC,
ONEVIEW_POWER_OFF='Off',
@@ -111,8 +108,16 @@ if not oneview_client:
oneview_client.exceptions.OneViewException = type('OneViewException',
(Exception,), {})
sys.modules['oneview_client.models'] = oneview_client.models
- if 'ironic.drivers.oneview' in sys.modules:
- six.moves.reload_module(sys.modules['ironic.drivers.modules.oneview'])
+
+oneview_client_module = importutils.try_import('oneview_client.client')
+# NOTE(vdrok): Always mock the oneview client, as it tries to establish
+# connection to oneview right in __init__, and stevedore does not seem to care
+# about mocks when it loads a module in mock_the_extension_manager
+sys.modules['oneview_client.client'].Client = mock.MagicMock(
+ spec_set=mock_specs.ONEVIEWCLIENT_CLIENT_CLS_SPEC
+)
+if 'ironic.drivers.oneview' in sys.modules:
+ six.moves.reload_module(sys.modules['ironic.drivers.modules.oneview'])
# attempt to load the external 'python-dracclient' library, which is required