Fix for V3 identity failing test cases.
Following V3 identity api tests are failing -
1. test_delete_credential
2. test_delete_user
3. test_delete_project
This patch provides fix for these failure of tests.
Closes-Bug: #1665067
Change-Id: I4bf4365a066d54d026fe350c0f01c425ba97c30c
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py b/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py
index 1e29023..a830493 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py
@@ -57,3 +57,23 @@
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
self.services_client.delete_service, service['id'])
return service
+
+ def _setup_test_project(self):
+ """Set up a test project."""
+ project = self.projects_client.create_project(
+ name=data_utils.rand_name('test_project'),
+ description=data_utils.rand_name('desc'))['project']
+ # Delete the project at the end of the test
+ self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+ self.projects_client.delete_project, project['id'])
+ return project
+
+ def _create_test_user(self, **kwargs):
+ if kwargs['password'] is None:
+ user_password = data_utils.rand_password()
+ kwargs['password'] = user_password
+ user = self.users_client.create_user(**kwargs)['user']
+ # Delete the user at the end of the test
+ self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+ self.users_client.delete_user, user['id'])
+ return user
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
index 45abe9f..3428e7f 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
@@ -14,6 +14,7 @@
# under the License.
from tempest.common.utils import data_utils
+from tempest.lib.common.utils import test_utils
from tempest import test
from patrole_tempest_plugin import rbac_rule_validation
@@ -44,7 +45,9 @@
blob=blob,
type='ec2')['credential']
- self.addCleanup(self.creds_client.delete_credential, credential['id'])
+ self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+ self.creds_client.delete_credential, credential['id'])
+
return (project_id, credential)
@rbac_rule_validation.action(service="keystone",
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
index 9af2ccf..c347e56 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
@@ -54,7 +54,7 @@
RBAC test for Keystone: identity:update_project
"""
- project = self.setup_test_project()
+ project = self._setup_test_project()
rbac_utils.switch_role(self, switchToRbacRole=True)
self.non_admin_projects_client \
@@ -69,7 +69,7 @@
RBAC test for Keystone: identity:delete_project
"""
- project = self.setup_test_project()
+ project = self._setup_test_project()
rbac_utils.switch_role(self, switchToRbacRole=True)
self.non_admin_projects_client.delete_project(project['id'])
@@ -82,7 +82,7 @@
RBAC test for Keystone: identity:get_project
"""
- project = self.setup_test_project()
+ project = self._setup_test_project()
rbac_utils.switch_role(self, switchToRbacRole=True)
self.non_admin_projects_client.show_project(project['id'])