Use mock instead of mox for keypair test
Use mock instead of mox for keypair test. Change-Id: I37c4fd546cfdced6e68049aad5cf59e907abe2cd
This commit is contained in:
parent
f141140bc8
commit
82478c2a98
|
@ -42,14 +42,14 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
|
||||
def setUp(self):
|
||||
super(NovaKeyPairTest, self).setUp()
|
||||
self.fake_nova = self.m.CreateMockAnything()
|
||||
self.fake_keypairs = self.m.CreateMockAnything()
|
||||
self.fake_nova = mock.MagicMock()
|
||||
self.fake_keypairs = mock.MagicMock()
|
||||
self.fake_nova.keypairs = self.fake_keypairs
|
||||
self.patchobject(nova.NovaClientPlugin, 'has_extension',
|
||||
return_value=True)
|
||||
|
||||
def _mock_key(self, name, pub=None, priv=None):
|
||||
mkey = self.m.CreateMockAnything()
|
||||
mkey = mock.MagicMock()
|
||||
mkey.id = name
|
||||
mkey.name = name
|
||||
if pub:
|
||||
|
@ -62,8 +62,8 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
self.stack = utils.parse_stack(template)
|
||||
definition = self.stack.t.resource_definitions(self.stack)['kp']
|
||||
kp_res = keypair.KeyPair('kp', definition, self.stack)
|
||||
self.m.StubOutWithMock(nova.NovaClientPlugin, '_create')
|
||||
nova.NovaClientPlugin._create().AndReturn(self.fake_nova)
|
||||
self.patchobject(nova.NovaClientPlugin, '_create',
|
||||
return_value=self.fake_nova)
|
||||
return kp_res
|
||||
|
||||
def _get_mock_kp_for_create(self, key_name, public_key=None,
|
||||
|
@ -79,25 +79,25 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
nova_key.private_key = "private key for %s" % key_name
|
||||
props['save_private_key'] = True
|
||||
kp_res = self._get_test_resource(template)
|
||||
self.fake_keypairs.create(key_name,
|
||||
public_key=public_key).AndReturn(nova_key)
|
||||
self.patchobject(self.fake_keypairs, 'create',
|
||||
return_value=nova_key)
|
||||
return kp_res, nova_key
|
||||
|
||||
def test_create_key(self):
|
||||
"""Test basic create."""
|
||||
key_name = "generate_no_save"
|
||||
tp_test, created_key = self._get_mock_kp_for_create(key_name)
|
||||
self.fake_keypairs.get(key_name).MultipleTimes().AndReturn(created_key)
|
||||
created_key.to_dict().AndReturn({'key_pair': 'info'})
|
||||
self.m.ReplayAll()
|
||||
self.patchobject(self.fake_keypairs, 'get', return_value=created_key)
|
||||
key_info = {'key_pair': 'info'}
|
||||
self.patchobject(created_key, 'to_dict',
|
||||
return_value=key_info)
|
||||
scheduler.TaskRunner(tp_test.create)()
|
||||
self.assertEqual("", tp_test.FnGetAtt('private_key'))
|
||||
self.assertEqual("generated test public key",
|
||||
tp_test.FnGetAtt('public_key'))
|
||||
self.assertEqual({'key_pair': 'info'}, tp_test.FnGetAtt('show'))
|
||||
self.assertEqual(key_info, tp_test.FnGetAtt('show'))
|
||||
self.assertEqual((tp_test.CREATE, tp_test.COMPLETE), tp_test.state)
|
||||
self.assertEqual(tp_test.resource_id, created_key.name)
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_create_key_empty_name(self):
|
||||
"""Test creation of a keypair whose name is of length zero."""
|
||||
|
@ -107,13 +107,11 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
stack = utils.parse_stack(template)
|
||||
definition = stack.t.resource_definitions(stack)['kp']
|
||||
kp_res = keypair.KeyPair('kp', definition, stack)
|
||||
self.m.ReplayAll()
|
||||
error = self.assertRaises(exception.StackValidationFailed,
|
||||
kp_res.validate)
|
||||
self.assertIn("Property error", six.text_type(error))
|
||||
self.assertIn("kp.properties.name: length (0) is out of "
|
||||
"range (min: 1, max: 255)", six.text_type(error))
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_create_key_excess_name_length(self):
|
||||
"""Test creation of a keypair whose name is of excess length."""
|
||||
|
@ -123,13 +121,11 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
stack = utils.parse_stack(template)
|
||||
definition = stack.t.resource_definitions(stack)['kp']
|
||||
kp_res = keypair.KeyPair('kp', definition, stack)
|
||||
self.m.ReplayAll()
|
||||
error = self.assertRaises(exception.StackValidationFailed,
|
||||
kp_res.validate)
|
||||
self.assertIn("Property error", six.text_type(error))
|
||||
self.assertIn("kp.properties.name: length (256) is out of "
|
||||
"range (min: 1, max: 255)", six.text_type(error))
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_check_key(self):
|
||||
res = self._get_test_resource(self.kp_template)
|
||||
|
@ -152,23 +148,18 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
res.resource_id = 'my_key'
|
||||
# to delete the keypair preparing for replace
|
||||
self.fake_keypairs.delete('my_key')
|
||||
self.m.ReplayAll()
|
||||
updater = scheduler.TaskRunner(res.update, res.t)
|
||||
self.assertRaises(resource.UpdateReplace, updater)
|
||||
|
||||
self.m.ReplayAll()
|
||||
|
||||
def test_delete_key_not_found(self):
|
||||
"""Test delete non-existent key."""
|
||||
test_res = self._get_test_resource(self.kp_template)
|
||||
test_res.resource_id = "key_name"
|
||||
test_res.state_set(test_res.CREATE, test_res.COMPLETE)
|
||||
(self.fake_keypairs.delete("key_name")
|
||||
.AndRaise(fakes_nova.fake_exception()))
|
||||
self.m.ReplayAll()
|
||||
self.patchobject(self.fake_keypairs, 'delete',
|
||||
side_effect=fakes_nova.fake_exception())
|
||||
scheduler.TaskRunner(test_res.delete)()
|
||||
self.assertEqual((test_res.DELETE, test_res.COMPLETE), test_res.state)
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_create_pub(self):
|
||||
"""Test create using existing pub key."""
|
||||
|
@ -176,22 +167,19 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
pk = "test_create_pub"
|
||||
tp_test, created_key = self._get_mock_kp_for_create(key_name,
|
||||
public_key=pk)
|
||||
self.m.ReplayAll()
|
||||
scheduler.TaskRunner(tp_test.create)()
|
||||
self.assertEqual("", tp_test.FnGetAtt('private_key'))
|
||||
self.assertEqual("test_create_pub",
|
||||
tp_test.FnGetAtt('public_key'))
|
||||
self.assertEqual((tp_test.CREATE, tp_test.COMPLETE), tp_test.state)
|
||||
self.assertEqual(tp_test.resource_id, created_key.name)
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_save_priv_key(self):
|
||||
"""Test a saved private key."""
|
||||
key_name = "save_private"
|
||||
tp_test, created_key = self._get_mock_kp_for_create(key_name,
|
||||
priv_saved=True)
|
||||
self.fake_keypairs.get(key_name).AndReturn(created_key)
|
||||
self.m.ReplayAll()
|
||||
self.patchobject(self.fake_keypairs, 'get', return_value=created_key)
|
||||
scheduler.TaskRunner(tp_test.create)()
|
||||
self.assertEqual("private key for save_private",
|
||||
tp_test.FnGetAtt('private_key'))
|
||||
|
@ -199,7 +187,6 @@ class NovaKeyPairTest(common.HeatTestCase):
|
|||
tp_test.FnGetAtt('public_key'))
|
||||
self.assertEqual((tp_test.CREATE, tp_test.COMPLETE), tp_test.state)
|
||||
self.assertEqual(tp_test.resource_id, created_key.name)
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_nova_keypair_refid(self):
|
||||
stack = utils.parse_stack(self.kp_template)
|
||||
|
|
Loading…
Reference in New Issue