From e1cb3042c8fe25d7fe28bc7d1d38f5a3ae90fa1d Mon Sep 17 00:00:00 2001 From: Gael Chamoulaud Date: Wed, 31 Jul 2019 16:06:28 +0200 Subject: [PATCH] Mock deployment action in upgrade tests Without properly mocking the deployment action, these tests are trying to execute deployment code including temp file creation which can lead to package build failures. This change mocks out the deployment take action for the UpgradeRun so we're only testing the upgrade code itself. Change-Id: I3ac295d2e2f86fbb2120f9491d4103434b6ac3da Closes-Bug: #1838506 Signed-off-by: Gael Chamoulaud --- .../v1/overcloud_upgrade/test_overcloud_upgrade.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tripleoclient/tests/v1/overcloud_upgrade/test_overcloud_upgrade.py b/tripleoclient/tests/v1/overcloud_upgrade/test_overcloud_upgrade.py index 51cb6c8f7..390d0c67f 100644 --- a/tripleoclient/tests/v1/overcloud_upgrade/test_overcloud_upgrade.py +++ b/tripleoclient/tests/v1/overcloud_upgrade/test_overcloud_upgrade.py @@ -37,6 +37,8 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare): self.mock_uuid4 = uuid4_patcher.start() self.addCleanup(self.mock_uuid4.stop) + @mock.patch('tripleoclient.v1.overcloud_deploy.DeployOvercloud.' + 'take_action') @mock.patch('tripleoclient.workflows.deployment.' 'get_hosts_and_enable_ssh_admin', autospec=True) @mock.patch('tripleoclient.workflows.deployment.create_overcloudrc', @@ -67,7 +69,8 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare): add_env, mock_write_overcloudrc, mock_overcloudrc, - mock_enable_ssh_admin): + mock_enable_ssh_admin, + mock_overcloud_deploy): mock_stack = mock.Mock(parameters={'DeployIdentifier': ''}) mock_stack.stack_name = 'overcloud' @@ -92,11 +95,14 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare): container="overcloud") mock_write_overcloudrc.assert_called_once_with("overcloud", mock.ANY) + mock_overcloud_deploy.assert_called_once_with(parsed_args) mock_enable_ssh_admin.assert_called_once_with( self.cmd.log, self.app.client_manager, mock_stack, parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_key) + @mock.patch('tripleoclient.v1.overcloud_deploy.DeployOvercloud.' + 'take_action') @mock.patch('tripleoclient.utils.get_stack', autospec=True) @mock.patch('tripleoclient.utils.prepend_environment', autospec=True) @@ -110,7 +116,7 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare): '_deploy_tripleo_heat_templates', autospec=True) def test_upgrade_failed(self, mock_deploy, mock_copy, mock_yaml, mock_abspath, mock_open, mock_upgrade, - add_env, mock_get_stack): + add_env, mock_get_stack, mock_overcloud_deploy): mock_upgrade.side_effect = exceptions.DeploymentError() mock_yaml.return_value = {'fake_container': 'fake_value'} mock_stack = mock.Mock(parameters={'DeployIdentifier': ''}) @@ -127,6 +133,7 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare): self.assertRaises(exceptions.DeploymentError, self.cmd.take_action, parsed_args) + mock_overcloud_deploy.assert_called_once_with(parsed_args) @mock.patch('tripleo_common.update.check_neutron_mechanism_drivers') def test_upgrade_failed_wrong_driver(self, check_mech):