summaryrefslogtreecommitdiff
path: root/heat/tests/openstack/nova/test_keypair.py
diff options
context:
space:
mode:
Diffstat (limited to 'heat/tests/openstack/nova/test_keypair.py')
-rw-r--r--heat/tests/openstack/nova/test_keypair.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/heat/tests/openstack/nova/test_keypair.py b/heat/tests/openstack/nova/test_keypair.py
index 29c92c0f0..83dd116d3 100644
--- a/heat/tests/openstack/nova/test_keypair.py
+++ b/heat/tests/openstack/nova/test_keypair.py
@@ -201,6 +201,29 @@ class NovaKeyPairTest(common.HeatTestCase):
return_value='2.1')
self._test_validate(user='user_A')
+ def test_validate_public_key(self):
+ self.patchobject(nova.NovaClientPlugin, 'get_max_microversion',
+ return_value='2.92')
+ template = copy.deepcopy(self.kp_template)
+ template['resources']['kp']['properties']['public_key'] = 'dummy'
+ stack = utils.parse_stack(template)
+ definition = stack.t.resource_definitions(stack)['kp']
+ kp_res = keypair.KeyPair('kp', definition, stack)
+ kp_res.validate()
+
+ def test_validate_public_key_fail(self):
+ self.patchobject(nova.NovaClientPlugin, 'get_max_microversion',
+ return_value='2.92')
+ template = copy.deepcopy(self.kp_template)
+ stack = utils.parse_stack(template)
+ definition = stack.t.resource_definitions(stack)['kp']
+ kp_res = keypair.KeyPair('kp', definition, stack)
+ error = self.assertRaises(exception.StackValidationFailed,
+ kp_res.validate)
+ msg = ('The public_key property is required by the nova API version '
+ 'currently used.')
+ self.assertIn(msg, str(error))
+
def test_check_key(self):
res = self._get_test_resource(self.kp_template)
res.state_set(res.CREATE, res.COMPLETE, 'for test')