summaryrefslogtreecommitdiff
path: root/heat/tests
diff options
context:
space:
mode:
authorrabi <ramishra@redhat.com>2018-03-23 11:10:55 +0530
committerrabi <ramishra@redhat.com>2018-06-29 09:37:44 +0530
commit3c06347a93343850409a243b3c7e1f11eeb4db3f (patch)
tree0e54c8697530d76724312e2ec5e75044a7e13dbc /heat/tests
parent72f18efe02df4056a4c22576b4fffb97a5e6ba2e (diff)
downloadheat-3c06347a93343850409a243b3c7e1f11eeb4db3f.tar.gz
Refactor resource plugins for microversion usage
This changes the way nova client plugin is used in some nova resource plugins. Change-Id: Ibc41e0387a3056b3fde7b7690bf924e7493a7a7e
Diffstat (limited to 'heat/tests')
-rw-r--r--heat/tests/openstack/nova/test_keypair.py27
-rw-r--r--heat/tests/openstack/nova/test_server.py22
2 files changed, 22 insertions, 27 deletions
diff --git a/heat/tests/openstack/nova/test_keypair.py b/heat/tests/openstack/nova/test_keypair.py
index 5cd956521..cc412bbd2 100644
--- a/heat/tests/openstack/nova/test_keypair.py
+++ b/heat/tests/openstack/nova/test_keypair.py
@@ -117,7 +117,7 @@ class NovaKeyPairTest(common.HeatTestCase):
self.assertEqual(tp_test.resource_id, created_key.name)
self.fake_keypairs.create.assert_called_once_with(
name=key_name, public_key=None, type='ssh')
- self.cp_mock.assert_called_once_with(version='2.2')
+ self.cp_mock.assert_called_once_with()
def test_create_key_with_user_id(self):
key_name = "create_with_user_id"
@@ -130,7 +130,7 @@ class NovaKeyPairTest(common.HeatTestCase):
self.assertEqual(tp_test.resource_id, created_key.name)
self.fake_keypairs.create.assert_called_once_with(
name=key_name, public_key=None, user_id='userA_ID')
- self.cp_mock.assert_called_once_with(version='2.10')
+ self.cp_mock.assert_called_once_with()
def test_create_key_with_user_and_type(self):
key_name = "create_with_user_id_and_type"
@@ -145,7 +145,7 @@ class NovaKeyPairTest(common.HeatTestCase):
self.fake_keypairs.create.assert_called_once_with(
name=key_name, public_key=None, user_id='userA_ID',
type='x509')
- self.cp_mock.assert_called_once_with(version='2.10')
+ self.cp_mock.assert_called_once_with()
def test_create_key_empty_name(self):
"""Test creation of a keypair whose name is of length zero."""
@@ -175,7 +175,7 @@ class NovaKeyPairTest(common.HeatTestCase):
self.assertIn("kp.properties.name: length (256) is out of "
"range (min: 1, max: 255)", six.text_type(error))
- def _test_validate(self, key_type=None, user=None, nc_version=None):
+ def _test_validate(self, key_type=None, user=None):
template = copy.deepcopy(self.kp_template)
validate_props = []
if key_type:
@@ -187,26 +187,23 @@ class NovaKeyPairTest(common.HeatTestCase):
stack = utils.parse_stack(template)
definition = stack.t.resource_definitions(stack)['kp']
kp_res = keypair.KeyPair('kp', definition, stack)
- self.patchobject(nova.NovaClientPlugin, 'client',
- side_effect=exception.InvalidServiceVersion(
- service='compute',
- version=nc_version
- ))
-
error = self.assertRaises(exception.StackValidationFailed,
kp_res.validate)
- msg = (('Cannot use "%(prop)s" properties - nova does not support: '
- 'Invalid service compute version %(ver)s') %
- {'prop': validate_props, 'ver': nc_version})
+ msg = (('Cannot use "%s" properties - nova does not support '
+ 'required api microversion.') % validate_props)
self.assertIn(msg, six.text_type(error))
def test_validate_key_type(self):
- self._test_validate(key_type='x509', nc_version='2.2')
+ self.patchobject(nova.NovaClientPlugin, 'get_max_microversion',
+ return_value='2.1')
+ self._test_validate(key_type='x509')
def test_validate_user(self):
self.patchobject(keystone.KeystoneClientPlugin, 'get_user_id',
return_value='user_A')
- self._test_validate(user='user_A', nc_version='2.10')
+ self.patchobject(nova.NovaClientPlugin, 'get_max_microversion',
+ return_value='2.1')
+ self._test_validate(user='user_A')
def test_check_key(self):
res = self._get_test_resource(self.kp_template)
diff --git a/heat/tests/openstack/nova/test_server.py b/heat/tests/openstack/nova/test_server.py
index bf80c8a0e..6e73827e2 100644
--- a/heat/tests/openstack/nova/test_server.py
+++ b/heat/tests/openstack/nova/test_server.py
@@ -417,6 +417,8 @@ class ServersTest(common.HeatTestCase):
server_name = 'test_server_create'
stack_name = '%s_s' % server_name
server = self._create_test_server(return_server, server_name)
+ self.patchobject(nova.NovaClientPlugin, 'is_version_supported',
+ return_value=True)
# this makes sure the auto increment worked on server creation
self.assertGreater(server.id, 0)
@@ -484,9 +486,8 @@ class ServersTest(common.HeatTestCase):
self.assertEqual(expected_name, server.FnGetAtt('name'))
self.assertEqual(['test'], server.FnGetAtt('tags'))
# test with unsupported version
- server.client = mock.Mock(side_effect=[
- self.fc,
- exception.InvalidServiceVersion(service='a', version='0')])
+ self.patchobject(nova.NovaClientPlugin, 'is_version_supported',
+ return_value=False)
if server.attributes._resolved_values.get('tags'):
del server.attributes._resolved_values['tags']
self.assertIsNone(server.FnGetAtt('tags'))
@@ -576,9 +577,7 @@ class ServersTest(common.HeatTestCase):
create_mock = self.patchobject(self.fc.servers, 'create',
return_value=return_server)
scheduler.TaskRunner(server.create)()
- mock_nc.assert_has_calls([mock.call(),
- mock.call(version='2.37'),
- mock.call()])
+ mock_nc.assert_called_with()
self.assertEqual(3, mock_nc.call_count)
self.assertEqual('none', create_mock.call_args[1]['nics'])
@@ -1982,7 +1981,8 @@ class ServersTest(common.HeatTestCase):
def test_server_get_live_state(self):
return_server = self.fc.servers.list()[1]
return_server.id = '5678'
-
+ self.patchobject(nova.NovaClientPlugin, 'is_version_supported',
+ return_value=False)
server = self._create_test_server(return_server,
'get_live_state_stack')
@@ -3112,10 +3112,8 @@ class ServersTest(common.HeatTestCase):
props['tags'] = ['a']
# no need test with key_name
props.pop('key_name')
- self.patchobject(nova.NovaClientPlugin, 'client',
- side_effect=[
- exception.InvalidServiceVersion(service='a',
- version='2.26')])
+ self.patchobject(nova.NovaClientPlugin, 'is_version_supported',
+ return_value=False)
resource_defns = tmpl.resource_definitions(stack)
server = servers.Server('server_create_image_err',
resource_defns['WebServer'], stack)
@@ -3127,7 +3125,7 @@ class ServersTest(common.HeatTestCase):
exc = self.assertRaises(exception.StackValidationFailed,
server.validate)
self.assertEqual('Cannot use "tags" property - nova does not support '
- 'it: Invalid service a version 2.26',
+ 'required api microversion.',
six.text_type(exc))
def test_server_validate_too_many_personality(self):