From 33a4dff6990306f9d11c9ed93488f2ec2947090a Mon Sep 17 00:00:00 2001 From: Fernando Diaz Date: Tue, 8 Mar 2016 19:56:23 +0000 Subject: [PATCH] Refactor Barbican Key Manager Tests Refactor Barbican Key Manager Test Cases with different auth types to inherit from a common base class. Change-Id: I00af70554a21c957bb88caa9e6a052089020d3f7 --- .../key_manager/test_barbican_key_manager.py | 210 +++++------------- 1 file changed, 61 insertions(+), 149 deletions(-) diff --git a/castellan/tests/functional/key_manager/test_barbican_key_manager.py b/castellan/tests/functional/key_manager/test_barbican_key_manager.py index 2f5b3510..13fde2b0 100644 --- a/castellan/tests/functional/key_manager/test_barbican_key_manager.py +++ b/castellan/tests/functional/key_manager/test_barbican_key_manager.py @@ -18,7 +18,7 @@ Functional test cases for the Barbican key manager. Note: This requires local running instances of Barbican and Keystone. """ - +import abc import uuid from keystoneclient.auth.identity import v3 @@ -39,35 +39,19 @@ from castellan.tests.functional.key_manager import test_key_manager CONF = config.get_config() -class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase, - base.BaseTestCase): +class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase): def _create_key_manager(self): return barbican_key_manager.BarbicanKeyManager(cfg.CONF) + @abc.abstractmethod + def get_context(self): + """Retrieves Context for Authentication""" + return + def setUp(self): super(BarbicanKeyManagerTestCase, self).setUp() - username = CONF.identity.username - password = CONF.identity.password - project_name = CONF.identity.project_name - auth_url = CONF.identity.auth_url - user_domain_name = CONF.identity.user_domain_name - project_domain_name = CONF.identity.project_domain_name - - auth = v3.Password(auth_url=auth_url, - username=username, - password=password, - project_name=project_name, - user_domain_name=user_domain_name, - project_domain_name=project_domain_name) - sess = session.Session(auth=auth) - keystone_client = client.Client(session=sess) - - project_list = keystone_client.projects.list(name=project_name) - - self.ctxt = context.RequestContext( - auth_token=auth.auth_ref.auth_token, - tenant=project_list[0].id) + self.ctxt = self.get_context() def tearDown(self): super(BarbicanKeyManagerTestCase, self).tearDown() @@ -118,84 +102,10 @@ class BarbicanKeyManagerTestCase(test_key_manager.KeyManagerTestCase, self.key_mgr.store, None, key) -class BarbicanKeyManagerKSPasswordTestCase(test_key_manager.KeyManagerTestCase, - base.BaseTestCase): +class BarbicanKeyManagerOSLOContextTestCase(BarbicanKeyManagerTestCase, + base.BaseTestCase): - def _create_key_manager(self): - return barbican_key_manager.BarbicanKeyManager(cfg.CONF) - - def setUp(self): - super(BarbicanKeyManagerKSPasswordTestCase, self).setUp() - username = CONF.identity.username - password = CONF.identity.password - project_name = CONF.identity.project_name - user_domain_name = CONF.identity.user_domain_name - project_domain_name = CONF.identity.project_domain_name - - self.ctxt = keystone_password.KeystonePassword( - username=username, - password=password, - project_name=project_name, - user_domain_name=user_domain_name, - project_domain_name=project_domain_name) - - def tearDown(self): - super(BarbicanKeyManagerKSPasswordTestCase, self).tearDown() - - def test_create_null_context(self): - self.assertRaises(exception.Forbidden, - self.key_mgr.create_key, None, 'AES', 256) - - def test_create_key_pair_null_context(self): - self.assertRaises(exception.Forbidden, - self.key_mgr.create_key_pair, None, 'RSA', 2048) - - def test_delete_null_context(self): - key_uuid = self._get_valid_object_uuid( - test_key_manager._get_test_symmetric_key()) - self.addCleanup(self.key_mgr.delete, self.ctxt, key_uuid) - self.assertRaises(exception.Forbidden, - self.key_mgr.delete, None, key_uuid) - - def test_delete_null_object(self): - self.assertRaises(exception.KeyManagerError, - self.key_mgr.delete, self.ctxt, None) - - def test_delete_unknown_object(self): - unknown_uuid = str(uuid.uuid4()) - self.assertRaises(exception.ManagedObjectNotFoundError, - self.key_mgr.delete, self.ctxt, unknown_uuid) - - def test_get_null_context(self): - key_uuid = self._get_valid_object_uuid( - test_key_manager._get_test_symmetric_key()) - self.assertRaises(exception.Forbidden, - self.key_mgr.get, None, key_uuid) - - def test_get_null_object(self): - self.assertRaises(exception.KeyManagerError, - self.key_mgr.get, self.ctxt, None) - - def test_get_unknown_key(self): - bad_key_uuid = str(uuid.uuid4()) - self.assertRaises(exception.ManagedObjectNotFoundError, - self.key_mgr.get, self.ctxt, bad_key_uuid) - - def test_store_null_context(self): - key = test_key_manager._get_test_symmetric_key() - - self.assertRaises(exception.Forbidden, - self.key_mgr.store, None, key) - - -class BarbicanKeyManagerKSTokenTestCase(test_key_manager.KeyManagerTestCase, - base.BaseTestCase): - - def _create_key_manager(self): - return barbican_key_manager.BarbicanKeyManager(cfg.CONF) - - def setUp(self): - super(BarbicanKeyManagerKSTokenTestCase, self).setUp() + def get_context(self): username = CONF.identity.username password = CONF.identity.password project_name = CONF.identity.project_name @@ -214,54 +124,56 @@ class BarbicanKeyManagerKSTokenTestCase(test_key_manager.KeyManagerTestCase, project_list = keystone_client.projects.list(name=project_name) - self.ctxt = keystone_token.KeystoneToken( + ctxt = context.RequestContext( + auth_token=auth.auth_ref.auth_token, + tenant=project_list[0].id) + + return ctxt + + +class BarbicanKeyManagerKSPasswordTestCase(BarbicanKeyManagerTestCase, + base.BaseTestCase): + + def get_context(self): + username = CONF.identity.username + password = CONF.identity.password + project_name = CONF.identity.project_name + user_domain_name = CONF.identity.user_domain_name + project_domain_name = CONF.identity.project_domain_name + + ctxt = keystone_password.KeystonePassword( + username=username, password=password, + project_name=project_name, + user_domain_name=user_domain_name, + project_domain_name=project_domain_name) + + return ctxt + + +class BarbicanKeyManagerKSTokenTestCase(BarbicanKeyManagerTestCase, + base.BaseTestCase): + + def get_context(self): + username = CONF.identity.username + password = CONF.identity.password + project_name = CONF.identity.project_name + auth_url = CONF.identity.auth_url + user_domain_name = CONF.identity.user_domain_name + project_domain_name = CONF.identity.project_domain_name + + auth = v3.Password(auth_url=auth_url, + username=username, + password=password, + project_name=project_name, + user_domain_name=user_domain_name, + project_domain_name=project_domain_name) + sess = session.Session(auth=auth) + keystone_client = client.Client(session=sess) + + project_list = keystone_client.projects.list(name=project_name) + + ctxt = keystone_token.KeystoneToken( token=auth.auth_ref.auth_token, project_id=project_list[0].id) - def tearDown(self): - super(BarbicanKeyManagerKSTokenTestCase, self).tearDown() - - def test_create_null_context(self): - self.assertRaises(exception.Forbidden, - self.key_mgr.create_key, None, 'AES', 256) - - def test_create_key_pair_null_context(self): - self.assertRaises(exception.Forbidden, - self.key_mgr.create_key_pair, None, 'RSA', 2048) - - def test_delete_null_context(self): - key_uuid = self._get_valid_object_uuid( - test_key_manager._get_test_symmetric_key()) - self.addCleanup(self.key_mgr.delete, self.ctxt, key_uuid) - self.assertRaises(exception.Forbidden, - self.key_mgr.delete, None, key_uuid) - - def test_delete_null_object(self): - self.assertRaises(exception.KeyManagerError, - self.key_mgr.delete, self.ctxt, None) - - def test_delete_unknown_object(self): - unknown_uuid = str(uuid.uuid4()) - self.assertRaises(exception.ManagedObjectNotFoundError, - self.key_mgr.delete, self.ctxt, unknown_uuid) - - def test_get_null_context(self): - key_uuid = self._get_valid_object_uuid( - test_key_manager._get_test_symmetric_key()) - self.assertRaises(exception.Forbidden, - self.key_mgr.get, None, key_uuid) - - def test_get_null_object(self): - self.assertRaises(exception.KeyManagerError, - self.key_mgr.get, self.ctxt, None) - - def test_get_unknown_key(self): - bad_key_uuid = str(uuid.uuid4()) - self.assertRaises(exception.ManagedObjectNotFoundError, - self.key_mgr.get, self.ctxt, bad_key_uuid) - - def test_store_null_context(self): - key = test_key_manager._get_test_symmetric_key() - - self.assertRaises(exception.Forbidden, - self.key_mgr.store, None, key) + return ctxt