Fix unittests for py310

Python 3.10 unittests were failing due to:
https://bugs.python.org/issue43478

In cases where autospec wasn't required, or
where duplicated. It has been removed accordingly.

Change-Id: I4de2ab8b9fe1f1541e04d3c863db81c5cada0cd6
This commit is contained in:
Brendan Shephard 2022-05-30 13:30:34 +10:00
parent f92535b1ca
commit ad48f5c43b
7 changed files with 64 additions and 89 deletions

View File

@ -347,8 +347,8 @@ class TestHeatPodLauncher(base.TestCase):
launcher.stop_heat()
mock_pod_exists.assert_called()
mock_pod_state.assert_called()
self.check_call.asert_called_once_with(['sudo', 'podman', 'pod',
'stop', 'ephemeral-heat'])
self.check_call.assert_called_once_with(['sudo', 'podman', 'pod',
'stop', 'ephemeral-heat'])
self.check_call.reset_mock()
mock_pod_exists.reset_mock()

View File

@ -15,7 +15,6 @@
from unittest import mock
from tripleoclient.tests import fakes as ooofakes
from tripleoclient.tests.v1.overcloud_external_upgrade import fakes
from tripleoclient.v1 import overcloud_external_upgrade
@ -35,23 +34,11 @@ class TestOvercloudExternalUpgradeRun(fakes.TestOvercloudExternalUpgradeRun):
self.mock_uuid4 = uuid4_patcher.start()
self.addCleanup(self.mock_uuid4.stop)
@mock.patch(
'ansible_runner.runner_config.RunnerConfig',
autospec=True,
return_value=ooofakes.FakeRunnerConfig()
)
@mock.patch(
'ansible_runner.Runner.run',
return_value=ooofakes.fake_ansible_runner_run_return()
)
@mock.patch('tripleoclient.utils.run_ansible_playbook',
autospec=True)
@mock.patch('os.path.expanduser')
@mock.patch('oslo_concurrency.processutils.execute')
@mock.patch('builtins.open')
def test_upgrade_with_user_and_tags(self, mock_open, mock_execute,
mock_expanduser, update_ansible,
mock_run, mock_run_prepare):
mock_expanduser):
mock_expanduser.return_value = '/home/fake/'
argslist = ['--ssh-user', 'tripleo-admin',
'--tags', 'ceph']
@ -62,23 +49,13 @@ class TestOvercloudExternalUpgradeRun(fakes.TestOvercloudExternalUpgradeRun):
self.check_parser(self.cmd, argslist, verifylist)
@mock.patch(
'ansible_runner.runner_config.RunnerConfig',
autospec=True,
return_value=ooofakes.FakeRunnerConfig()
)
@mock.patch(
'ansible_runner.Runner.run',
return_value=ooofakes.fake_ansible_runner_run_return()
)
@mock.patch('tripleoclient.utils.run_ansible_playbook',
autospec=True)
@mock.patch('os.path.expanduser')
@mock.patch('oslo_concurrency.processutils.execute')
@mock.patch('builtins.open')
def test_upgrade_with_user_and_extra_vars(self, mock_open, mock_execute,
mock_expanduser, update_ansible,
mock_run, mock_run_prepare):
mock_expanduser, update_ansible):
mock_expanduser.return_value = '/home/fake/'
argslist = ['--ssh-user', 'tripleo-admin',
'--extra-vars', 'key1=val1',

View File

@ -46,8 +46,7 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare):
@mock.patch('tripleoclient.workflows.deployment.'
'get_hosts_and_enable_ssh_admin', autospec=True)
@mock.patch('tripleoclient.utils.prepend_environment', autospec=True)
@mock.patch('tripleoclient.utils.get_stack',
autospec=True)
@mock.patch('tripleoclient.utils.get_stack')
@mock.patch('tripleoclient.v1.overcloud_upgrade.UpgradePrepare.log',
autospec=True)
@mock.patch('yaml.safe_load')
@ -64,8 +63,8 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare):
mock_usercheck):
mock_stack = mock.Mock(parameters={'DeployIdentifier': ''})
mock_stack.stack_name = 'overcloud'
mock_get_stack.return_value = mock_stack
mock_stack.stack_name = 'overcloud'
mock_yaml.return_value = {'fake_container': 'fake_value'}
add_env = mock.Mock()
add_env.return_value = True
@ -103,8 +102,7 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare):
return_value=True)
@mock.patch('tripleoclient.v1.overcloud_deploy.DeployOvercloud.'
'take_action')
@mock.patch('tripleoclient.utils.get_stack',
autospec=True)
@mock.patch('tripleoclient.utils.get_stack')
@mock.patch('tripleoclient.utils.prepend_environment', autospec=True)
@mock.patch('builtins.open')
@mock.patch('yaml.safe_load')
@ -190,7 +188,6 @@ class TestOvercloudUpgradeRun(fakes.TestOvercloudUpgradeRun):
return_value=True)
@mock.patch(
'ansible_runner.runner_config.RunnerConfig',
autospec=True,
return_value=ooofakes.FakeRunnerConfig()
)
@mock.patch(

View File

@ -33,10 +33,10 @@ class TestOvercloudCephDeploy(fakes.FakePlaybookExecution):
self.cmd = overcloud_ceph.OvercloudCephDeploy(self.app,
app_args)
@mock.patch('tripleoclient.utils.get_ceph_networks', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.get_ceph_networks', autospec=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_deploy_ceph(self, mock_playbook, mock_abspath,
mock_path_exists, mock_tempdirs,
@ -78,10 +78,10 @@ class TestOvercloudCephDeploy(fakes.FakePlaybookExecution):
}
)
@mock.patch('tripleoclient.utils.get_ceph_networks', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.get_ceph_networks', autospec=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_deploy_ceph_spec(self, mock_playbook, mock_abspath,
mock_path_exists, mock_tempdirs,
@ -125,8 +125,8 @@ class TestOvercloudCephDeploy(fakes.FakePlaybookExecution):
}
)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
def test_overcloud_deploy_ceph_no_overwrite(self, mock_abspath,
mock_path_exists):
arglist = ['deployed-metal.yaml',
@ -136,8 +136,8 @@ class TestOvercloudCephDeploy(fakes.FakePlaybookExecution):
self.assertRaises(osc_lib_exc.CommandError,
self.cmd.take_action, parsed_args)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
def test_overcloud_deploy_ceph_no_metal(self, mock_abspath,
mock_path_exists):
arglist = ['--stack', 'overcloud',
@ -146,10 +146,10 @@ class TestOvercloudCephDeploy(fakes.FakePlaybookExecution):
self.assertRaises(osc_lib_exc.CommandError,
self.cmd.take_action, parsed_args)
@mock.patch('tripleoclient.utils.get_ceph_networks', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.get_ceph_networks', autospec=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_deploy_ceph_ansible_no_force(self,
mock_playbook,
@ -177,13 +177,13 @@ class TestOvercloudCephUserDisable(fakes.FakePlaybookExecution):
app_args)
@mock.patch('tripleoclient.utils.parse_ansible_inventory',
autospect=True, return_value=['ceph0', 'ceph1', 'compute0'])
autospec=True, return_value=['ceph0', 'ceph1', 'compute0'])
@mock.patch('tripleoclient.utils.get_host_groups_from_ceph_spec',
autospect=True, return_value={'_admin': ['ceph0'],
'non_admin': ['ceph1']})
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
autospec=True, return_value={'_admin': ['ceph0'],
'non_admin': ['ceph1']})
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_ceph_user_disable(self, mock_playbook, mock_abspath,
mock_path_exists, mock_tempdirs,
@ -221,8 +221,8 @@ class TestOvercloudCephUserDisable(fakes.FakePlaybookExecution):
}
)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
def test_ceph_user_disable_no_yes(self, mock_abspath,
mock_path_exists):
arglist = ['ceph_spec.yaml',
@ -233,8 +233,8 @@ class TestOvercloudCephUserDisable(fakes.FakePlaybookExecution):
self.assertRaises(osc_lib_exc.CommandError,
self.cmd.take_action, parsed_args)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
def test_ceph_user_disable_invalid_fsid(self, mock_abspath,
mock_path_exists):
arglist = ['ceph_spec.yaml',
@ -258,13 +258,13 @@ class TestOvercloudCephUserEnable(fakes.FakePlaybookExecution):
app_args)
@mock.patch('tripleoclient.utils.parse_ansible_inventory',
autospect=True, return_value=['ceph0', 'ceph1', 'compute0'])
autospec=True, return_value=['ceph0', 'ceph1', 'compute0'])
@mock.patch('tripleoclient.utils.get_host_groups_from_ceph_spec',
autospect=True, return_value={'_admin': ['ceph0'],
'non_admin': ['ceph1']})
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
autospec=True, return_value={'_admin': ['ceph0'],
'non_admin': ['ceph1']})
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_ceph_user_enable_no_fsid(self, mock_playbook, mock_abspath,
mock_path_exists, mock_tempdirs,
@ -291,12 +291,12 @@ class TestOvercloudCephUserEnable(fakes.FakePlaybookExecution):
)
@mock.patch('tripleoclient.utils.parse_ansible_inventory',
autospect=True)
autospec=True)
@mock.patch('tripleoclient.utils.get_host_groups_from_ceph_spec',
autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
autospec=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_ceph_user_enable_fsid(self, mock_playbook, mock_abspath,
mock_path_exists, mock_tempdirs,
@ -339,9 +339,9 @@ class TestOvercloudCephSpec(fakes.FakePlaybookExecution):
self.cmd = overcloud_ceph.OvercloudCephSpec(self.app,
app_args)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_ceph_spec(self, mock_playbook, mock_abspath,
mock_path_exists, mock_tempdirs):

View File

@ -95,9 +95,9 @@ class TestDeleteOvercloud(deploy_fakes.TestDeployOvercloud):
)
self.assertEqual(mock_run_playbook.call_count, 2)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_delete_network_unprovision(self, mock_run_playbook,
mock_path_exists,

View File

@ -34,8 +34,8 @@ class TestOvercloudNetworkExtract(fakes.FakePlaybookExecution):
self.cmd = overcloud_network.OvercloudNetworkExtract(self.app,
app_args)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_network_extract(self, mock_playbook, mock_abspath,
mock_tempdirs):
@ -56,8 +56,8 @@ class TestOvercloudNetworkExtract(fakes.FakePlaybookExecution):
}
)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
def test_overcloud_network_extract_no_overwrite(self, mock_abspath,
mock_path_exists):
mock_abspath.return_value = '/test/test'
@ -86,9 +86,9 @@ class TestOvercloudNetworkProvision(fakes.FakePlaybookExecution):
mock_copy_to_wd.start()
self.addCleanup(mock_copy_to_wd.stop)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_network_provision(self, mock_playbook, mock_path_exists,
mock_abspath, mock_tempdirs):
@ -114,8 +114,8 @@ class TestOvercloudNetworkProvision(fakes.FakePlaybookExecution):
}
)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
def test_overcloud_network_extract_no_overwrite(self, mock_abspath,
mock_path_exists):
arglist = ['--output', 'deployed_networks.yaml', 'network-data.yaml']
@ -142,9 +142,9 @@ class TestOvercloudNetworkUnprovision(fakes.FakePlaybookExecution):
None)
self.cmd.app_args = mock.Mock(verbose_level=1)
@mock.patch('tripleoclient.utils.TempDirs', autospect=True)
@mock.patch('os.path.abspath', autospect=True)
@mock.patch('os.path.exists', autospect=True)
@mock.patch('tripleoclient.utils.TempDirs', autospec=True)
@mock.patch('os.path.abspath', autospec=True)
@mock.patch('os.path.exists', autospec=True)
@mock.patch('tripleoclient.utils.run_ansible_playbook', autospec=True)
def test_overcloud_network_unprovision(self, mock_playbook,
mock_path_exists,

View File

@ -3181,7 +3181,8 @@ def parse_container_image_prepare(tht_key='ContainerImagePrepare',
if len(registry) == 0:
registry = url_parse.urlparse('//' + key).netloc
if tag == registry:
if isinstance(tag_list[registry], collections.Mapping):
if isinstance(tag_list[registry],
collections.abc.Mapping):
credentials = tag_list[registry].popitem()
image_map['registry_username'] = credentials[0]
image_map['registry_password'] = credentials[1]