summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Kajinami <tkajinam@redhat.com>2023-03-09 19:05:41 +0900
committerTakashi Kajinami <tkajinam@redhat.com>2023-03-09 19:14:23 +0900
commit513dfd116e5177cb43a0fb78471ad1992f16210d (patch)
tree46ae5ef24d303aa913dce639a243cd8f325d97e5
parente582ef5b0b8cdf96e6af2b90b59a2f2b1c0d4ab0 (diff)
downloadheat-513dfd116e5177cb43a0fb78471ad1992f16210d.tar.gz
Fix unit tests with python-novaclient 18.3.0
python-novaclient 18.3.0 replaced usage of kwargs by explicit arguments and that broke some assertions of arguments. story: 2010638 task: 47613 Change-Id: I039d1e672611b7b523ce61df072c60d161851eed
-rw-r--r--heat/tests/openstack/nova/test_server.py52
1 files changed, 41 insertions, 11 deletions
diff --git a/heat/tests/openstack/nova/test_server.py b/heat/tests/openstack/nova/test_server.py
index 1ed657ff2..5419857dd 100644
--- a/heat/tests/openstack/nova/test_server.py
+++ b/heat/tests/openstack/nova/test_server.py
@@ -2437,16 +2437,33 @@ class ServersTest(common.HeatTestCase):
scheduler.TaskRunner(server.update, update_template)()
self.assertEqual((server.UPDATE, server.COMPLETE), server.state)
+ # NOTE(tkajinam): python-novaclient 18.3.0 removed usage of args/kwargs
+ # and now all arguments are defined. To make the test
+ # independent from the underlying inteface as much as
+ # possible we inspect kwargs and check what we intend
+ # to define in Heat's logic.
+ mock_rebuild.assert_called_once()
+ self.assertEqual((return_server, '2'), mock_rebuild.call_args.args)
if 'REBUILD' == policy:
- mock_rebuild.assert_called_once_with(
- return_server, '2', password=password,
- preserve_ephemeral=False,
- meta={}, files={})
+ self.assertLessEqual(
+ {
+ 'password': password,
+ 'preserve_ephemeral': False,
+ 'meta': {},
+ 'files': {}
+ }.items(),
+ mock_rebuild.call_args.kwargs.items()
+ )
else:
- mock_rebuild.assert_called_once_with(
- return_server, '2', password=password,
- preserve_ephemeral=True,
- meta={}, files={})
+ self.assertLessEqual(
+ {
+ 'password': password,
+ 'preserve_ephemeral': True,
+ 'meta': {},
+ 'files': {}
+ }.items(),
+ mock_rebuild.call_args.kwargs.items()
+ )
def test_server_update_image_rebuild_status_rebuild(self):
# Normally we will see 'REBUILD' first and then 'ACTIVE".
@@ -2502,9 +2519,22 @@ class ServersTest(common.HeatTestCase):
"Rebuilding server failed, status 'ERROR'",
str(error))
self.assertEqual((server.UPDATE, server.FAILED), server.state)
- mock_rebuild.assert_called_once_with(
- return_server, '2', password=None, preserve_ephemeral=False,
- meta={}, files={})
+ # NOTE(tkajinam): python-novaclient 18.3.0 removed usage of args/kwargs
+ # and now all arguments are defined. To make the test
+ # independent from the underlying inteface as much as
+ # possible we inspect kwargs and check what we intend
+ # to define in Heat's logic.
+ mock_rebuild.assert_called_once()
+ self.assertEqual((return_server, '2'), mock_rebuild.call_args.args)
+ self.assertLessEqual(
+ {
+ 'password': None,
+ 'preserve_ephemeral': False,
+ 'meta': {},
+ 'files': {}
+ }.items(),
+ mock_rebuild.call_args.kwargs.items()
+ )
def test_server_update_properties(self):
return_server = self.fc.servers.list()[1]