Allow user to be disabled
When a user is disabled users_clients.list_users() is called.
In the above method it is assumed that they are looking in the domain
that is specified in the tempest.conf. In test_users_negative.py. The
user are created in the default domain. To fix this we need to passed
the domain_id to list_user to get the user in the correct domain.
Change-Id: I348600da7c7c12e0dcbfcf6f4e376e2950b31a5f
Closes-Bug: #1549044
diff --git a/tempest/api/identity/admin/v3/test_users_negative.py b/tempest/api/identity/admin/v3/test_users_negative.py
index 9dd477b..9bc4b9c 100644
--- a/tempest/api/identity/admin/v3/test_users_negative.py
+++ b/tempest/api/identity/admin/v3/test_users_negative.py
@@ -39,7 +39,7 @@
def test_authentication_for_disabled_user(self):
# Attempt to authenticate for disabled user should fail
self.data.setup_test_user()
- self.disable_user(self.data.user['name'])
+ self.disable_user(self.data.user['name'], self.data.user['domain_id'])
self.assertRaises(lib_exc.Unauthorized, self.token.auth,
username=self.data.user['name'],
password=self.data.user_password,
diff --git a/tempest/api/identity/base.py b/tempest/api/identity/base.py
index 1025de7..46dcb83 100644
--- a/tempest/api/identity/base.py
+++ b/tempest/api/identity/base.py
@@ -37,8 +37,12 @@
cls.tenants_client.update_tenant(tenant['id'], enabled=False)
@classmethod
- def get_user_by_name(cls, name):
- users = cls.users_client.list_users()['users']
+ def get_user_by_name(cls, name, domain_id=None):
+ if domain_id:
+ params = {'domain_id': domain_id}
+ users = cls.users_client.list_users(params)['users']
+ else:
+ users = cls.users_client.list_users()['users']
user = [u for u in users if u['name'] == name]
if len(user) > 0:
return user[0]
@@ -175,8 +179,8 @@
return role[0]
@classmethod
- def disable_user(cls, user_name):
- user = cls.get_user_by_name(user_name)
+ def disable_user(cls, user_name, domain_id=None):
+ user = cls.get_user_by_name(user_name, domain_id)
cls.users_client.update_user(user['id'], user_name, enabled=False)
def delete_domain(self, domain_id):