Merge "MockKeyManager should return a copy of the object instead of actual object"

This commit is contained in:
Jenkins 2017-05-18 17:31:27 +00:00 committed by Gerrit Code Review
commit bd29f61d6c
2 changed files with 19 additions and 1 deletions

View File

@ -27,6 +27,7 @@ this class.
"""
import binascii
import copy
import random
import uuid
@ -176,7 +177,7 @@ class MockKeyManager(key_manager.KeyManager):
if context is None:
raise exception.Forbidden()
obj = self.keys[managed_object_id]
obj = copy.deepcopy(self.keys[managed_object_id])
if metadata_only:
if hasattr(obj, "_key"):
obj._key = None

View File

@ -159,6 +159,23 @@ class MockKeyManagerTestCase(test_key_mgr.KeyManagerTestCase):
self.assertIsNone(actual_key.get_encoded())
self.assertTrue(actual_key.is_metadata_only())
def test_store_key_and_get_metadata_and_get_key(self):
secret_key = bytes(b'0' * 64)
_key = sym_key.SymmetricKey('AES', 64 * 8, secret_key)
key_id = self.key_mgr.store(self.context, _key)
actual_key = self.key_mgr.get(self.context,
key_id,
metadata_only=True)
self.assertIsNone(actual_key.get_encoded())
self.assertTrue(actual_key.is_metadata_only())
actual_key = self.key_mgr.get(self.context,
key_id,
metadata_only=False)
self.assertIsNotNone(actual_key.get_encoded())
self.assertFalse(actual_key.is_metadata_only())
def test_store_null_context(self):
self.assertRaises(exception.Forbidden,
self.key_mgr.store, None, None)