Fix unit test failures related to new os-client-config and osc-lib
[breakage related to os-client-config 1.28.0] os-client-config 1.28.0 add a check if filebased and envvars are both used. This check causes OSC unit test failure. OSC now instantiates OpenStackConfig twice as a workaround. The unit test mocks _load_config_file() and it returns a config dict, but os-client-config OpenStackConfig.__init__ updates the dict returned. As a result, when OpenStackConfig is instantiated second time, the mock of _load_config_file returns a modified version of the config dict. This hits the new check in os-client-config 1.28.0. This commit changes the mock to use side_effect rather than return_value to ensure the original dict is used. [breakage related to osc-lib 1.7.0] The change in osc-lib 1.7.0 added "if" logic to avoid calling get() twice. In tests.unit.volume.test_find_resource, kwargs is empty dict in find_resource(), so the second call to get() is NOT called now. Removing the second elements of side_effect addresses the unit failure. Co-Authored-By: Rui Chen <chenrui.momo@gmail.com> Change-Id: Ib9d14661b2755bbd6619e15c0d9023fbc9d27d70 Closes-Bug: #1703782 Closes-Bug: #1703783
This commit is contained in:
parent
faf6e16120
commit
3cba09e767
openstackclient/tests/unit
@ -397,14 +397,14 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg):
|
|||||||
Run 1 has --os-password on CLI
|
Run 1 has --os-password on CLI
|
||||||
"""
|
"""
|
||||||
|
|
||||||
config_mock.return_value = (
|
def config_mock_return():
|
||||||
'file.yaml',
|
return ('file.yaml', copy.deepcopy(test_shell.CLOUD_2))
|
||||||
copy.deepcopy(test_shell.CLOUD_2),
|
config_mock.side_effect = config_mock_return
|
||||||
)
|
|
||||||
vendor_mock.return_value = (
|
def vendor_mock_return():
|
||||||
'file.yaml',
|
return ('file.yaml', copy.deepcopy(test_shell.PUBLIC_1))
|
||||||
copy.deepcopy(test_shell.PUBLIC_1),
|
vendor_mock.side_effect = vendor_mock_return
|
||||||
)
|
|
||||||
_shell = shell.OpenStackShell()
|
_shell = shell.OpenStackShell()
|
||||||
_shell.run(
|
_shell.run(
|
||||||
"--os-password qaz configuration show".split(),
|
"--os-password qaz configuration show".split(),
|
||||||
@ -466,14 +466,14 @@ class TestIntegShellCliPrecedenceOCC(test_base.TestInteg):
|
|||||||
Run 2 has --os-username, --os-password, --os-project-domain-id on CLI
|
Run 2 has --os-username, --os-password, --os-project-domain-id on CLI
|
||||||
"""
|
"""
|
||||||
|
|
||||||
config_mock.return_value = (
|
def config_mock_return():
|
||||||
'file.yaml',
|
return ('file.yaml', copy.deepcopy(test_shell.CLOUD_2))
|
||||||
copy.deepcopy(test_shell.CLOUD_2),
|
config_mock.side_effect = config_mock_return
|
||||||
)
|
|
||||||
vendor_mock.return_value = (
|
def vendor_mock_return():
|
||||||
'file.yaml',
|
return ('file.yaml', copy.deepcopy(test_shell.PUBLIC_1))
|
||||||
copy.deepcopy(test_shell.PUBLIC_1),
|
vendor_mock.side_effect = vendor_mock_return
|
||||||
)
|
|
||||||
_shell = shell.OpenStackShell()
|
_shell = shell.OpenStackShell()
|
||||||
_shell.run(
|
_shell.run(
|
||||||
"--os-username zarquon --os-password qaz "
|
"--os-username zarquon --os-password qaz "
|
||||||
|
@ -45,7 +45,6 @@ class TestFindResourceVolumes(test_utils.TestCase):
|
|||||||
resp = mock.Mock()
|
resp = mock.Mock()
|
||||||
body = {"volumes": [{"id": ID, 'display_name': NAME}]}
|
body = {"volumes": [{"id": ID, 'display_name': NAME}]}
|
||||||
api.client.get.side_effect = [Exception("Not found"),
|
api.client.get.side_effect = [Exception("Not found"),
|
||||||
Exception("Not found"),
|
|
||||||
(resp, body)]
|
(resp, body)]
|
||||||
self.manager = volumes.VolumeManager(api)
|
self.manager = volumes.VolumeManager(api)
|
||||||
|
|
||||||
@ -69,7 +68,6 @@ class TestFindResourceVolumeSnapshots(test_utils.TestCase):
|
|||||||
resp = mock.Mock()
|
resp = mock.Mock()
|
||||||
body = {"snapshots": [{"id": ID, 'display_name': NAME}]}
|
body = {"snapshots": [{"id": ID, 'display_name': NAME}]}
|
||||||
api.client.get.side_effect = [Exception("Not found"),
|
api.client.get.side_effect = [Exception("Not found"),
|
||||||
Exception("Not found"),
|
|
||||||
(resp, body)]
|
(resp, body)]
|
||||||
self.manager = volume_snapshots.SnapshotManager(api)
|
self.manager = volume_snapshots.SnapshotManager(api)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user