diff options
author | Zuul <zuul@review.opendev.org> | 2020-07-30 18:28:05 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-07-30 18:28:05 +0000 |
commit | f2727fa6b4eb9ed3a8b48f6b8a6b0d34d72307fb (patch) | |
tree | cf0c86f6e47dcf3b089c00508104a31a71d2f42c | |
parent | 82697e925382b4c712ca80d72a09660dfd992674 (diff) | |
parent | a7635d7175f48e9d218c1bc984a2658fcef7f286 (diff) | |
download | tempest-f2727fa6b4eb9ed3a8b48f6b8a6b0d34d72307fb.tar.gz |
Merge "Adding description for testcases - identity part5"
-rw-r--r-- | tempest/api/identity/admin/v2/test_roles_negative.py | 78 | ||||
-rw-r--r-- | tempest/api/identity/admin/v2/test_tenant_negative.py | 42 | ||||
-rw-r--r-- | tempest/api/identity/admin/v2/test_tokens.py | 5 | ||||
-rw-r--r-- | tempest/api/identity/admin/v2/test_tokens_negative.py | 5 | ||||
-rw-r--r-- | tempest/api/identity/admin/v2/test_users.py | 23 | ||||
-rw-r--r-- | tempest/api/identity/admin/v3/test_regions.py | 8 | ||||
-rw-r--r-- | tempest/api/identity/admin/v3/test_roles.py | 15 | ||||
-rw-r--r-- | tempest/api/identity/admin/v3/test_tokens.py | 13 | ||||
-rw-r--r-- | tempest/api/identity/v3/test_application_credentials.py | 5 |
9 files changed, 142 insertions, 52 deletions
diff --git a/tempest/api/identity/admin/v2/test_roles_negative.py b/tempest/api/identity/admin/v2/test_roles_negative.py index f3b7494c1..3c71ba961 100644 --- a/tempest/api/identity/admin/v2/test_roles_negative.py +++ b/tempest/api/identity/admin/v2/test_roles_negative.py @@ -20,6 +20,7 @@ from tempest.lib import exceptions as lib_exc class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): + """Negative tests of keystone roles via v2 API""" def _get_role_params(self): user = self.setup_test_user() @@ -30,14 +31,14 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('d5d5f1df-f8ca-4de0-b2ef-259c1cc67025') def test_list_roles_by_unauthorized_user(self): - # Non-administrator user should not be able to list roles + """Test Non-admin user should not be able to list roles via v2 API""" self.assertRaises(lib_exc.Forbidden, self.non_admin_roles_client.list_roles) @decorators.attr(type=['negative']) @decorators.idempotent_id('11a3c7da-df6c-40c2-abc2-badd682edf9f') def test_list_roles_request_without_token(self): - # Request to list roles without a valid token should fail + """Test listing roles without a valid token via v2 API should fail""" token = self.client.auth_provider.get_token() self.client.delete_token(token) self.assertRaises(lib_exc.Unauthorized, self.roles_client.list_roles) @@ -46,14 +47,14 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('c0b89e56-accc-4c73-85f8-9c0f866104c1') def test_role_create_blank_name(self): - # Should not be able to create a role with a blank name + """Test creating a role with a blank name via v2 API is not allowed""" self.assertRaises(lib_exc.BadRequest, self.roles_client.create_role, name='') @decorators.attr(type=['negative']) @decorators.idempotent_id('585c8998-a8a4-4641-a5dd-abef7a8ced00') def test_create_role_by_unauthorized_user(self): - # Non-administrator user should not be able to create role + """Test non-admin user should not be able to create role via v2 API""" role_name = data_utils.rand_name(name='role') self.assertRaises(lib_exc.Forbidden, self.non_admin_roles_client.create_role, @@ -62,7 +63,7 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('a7edd17a-e34a-4aab-8bb7-fa6f498645b8') def test_create_role_request_without_token(self): - # Request to create role without a valid token should fail + """Test creating role without a valid token via v2 API should fail""" token = self.client.auth_provider.get_token() self.client.delete_token(token) role_name = data_utils.rand_name(name='role') @@ -73,7 +74,7 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('c0cde2c8-81c1-4bb0-8fe2-cf615a3547a8') def test_role_create_duplicate(self): - # Role names should be unique + """Test role names should be unique via v2 API""" role_name = data_utils.rand_name(name='role-dup') body = self.roles_client.create_role(name=role_name)['role'] role1_id = body.get('id') @@ -84,7 +85,7 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('15347635-b5b1-4a87-a280-deb2bd6d865e') def test_delete_role_by_unauthorized_user(self): - # Non-administrator user should not be able to delete role + """Test non-admin user should not be able to delete role via v2 API""" role_name = data_utils.rand_name(name='role') body = self.roles_client.create_role(name=role_name)['role'] self.addCleanup(self.roles_client.delete_role, body['id']) @@ -95,7 +96,7 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('44b60b20-70de-4dac-beaf-a3fc2650a16b') def test_delete_role_request_without_token(self): - # Request to delete role without a valid token should fail + """Test deleting role without a valid token via v2 API should fail""" role_name = data_utils.rand_name(name='role') body = self.roles_client.create_role(name=role_name)['role'] self.addCleanup(self.roles_client.delete_role, body['id']) @@ -110,7 +111,7 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('38373691-8551-453a-b074-4260ad8298ef') def test_delete_role_non_existent(self): - # Attempt to delete a non existent role should fail + """Test deleting a non existent role via v2 API should fail""" non_existent_role = data_utils.rand_uuid_hex() self.assertRaises(lib_exc.NotFound, self.roles_client.delete_role, non_existent_role) @@ -118,8 +119,11 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('391df5cf-3ec3-46c9-bbe5-5cb58dd4dc41') def test_assign_user_role_by_unauthorized_user(self): - # Non-administrator user should not be authorized to - # assign a role to user + """Test non-admin user assigning a role to user via v2 API + + Non-admin user should not be authorized to assign a role to user via + v2 API. + """ (user, tenant, role) = self._get_role_params() self.assertRaises( lib_exc.Forbidden, @@ -129,7 +133,11 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('f0d2683c-5603-4aee-95d7-21420e87cfd8') def test_assign_user_role_request_without_token(self): - # Request to assign a role to a user without a valid token + """Test assigning a role to a user without a valid token via v2 API + + Assigning a role to a user without a valid token via v2 API should + fail. + """ (user, tenant, role) = self._get_role_params() token = self.client.auth_provider.get_token() self.client.delete_token(token) @@ -142,7 +150,10 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('99b297f6-2b5d-47c7-97a9-8b6bb4f91042') def test_assign_user_role_for_non_existent_role(self): - # Attempt to assign a non existent role to user should fail + """Test assigning a non existent role to user via v2 API + + Assigning a non existent role to user via v2 API should fail. + """ (user, tenant, _) = self._get_role_params() non_existent_role = data_utils.rand_uuid_hex() self.assertRaises(lib_exc.NotFound, @@ -152,7 +163,10 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('b2285aaa-9e76-4704-93a9-7a8acd0a6c8f') def test_assign_user_role_for_non_existent_tenant(self): - # Attempt to assign a role on a non existent tenant should fail + """Test assigning a role on a non existent tenant via v2 API + + Assigning a role on a non existent tenant via v2 API should fail. + """ (user, _, role) = self._get_role_params() non_existent_tenant = data_utils.rand_uuid_hex() self.assertRaises(lib_exc.NotFound, @@ -162,7 +176,7 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('5c3132cd-c4c8-4402-b5ea-71eb44e97793') def test_assign_duplicate_user_role(self): - # Duplicate user role should not get assigned + """Test duplicate user role should not get assigned via v2 API""" (user, tenant, role) = self._get_role_params() self.roles_client.create_user_role_on_project(tenant['id'], user['id'], @@ -174,8 +188,11 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('d0537987-0977-448f-a435-904c15de7298') def test_remove_user_role_by_unauthorized_user(self): - # Non-administrator user should not be authorized to - # remove a user's role + """Test non-admin user removing a user's role via v2 API + + Non-admin user should not be authorized to remove a user's role via + v2 API + """ (user, tenant, role) = self._get_role_params() self.roles_client.create_user_role_on_project(tenant['id'], user['id'], @@ -188,7 +205,10 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('cac81cf4-c1d2-47dc-90d3-f2b7eb572286') def test_remove_user_role_request_without_token(self): - # Request to remove a user's role without a valid token + """Test removing a user's role without a valid token via v2 API + + Removing a user's role without a valid token via v2 API should fail. + """ (user, tenant, role) = self._get_role_params() self.roles_client.create_user_role_on_project(tenant['id'], user['id'], @@ -203,7 +223,10 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('ab32d759-cd16-41f1-a86e-44405fa9f6d2') def test_remove_user_role_non_existent_role(self): - # Attempt to delete a non existent role from a user should fail + """Test deleting a non existent role from a user via v2 API + + Deleting a non existent role from a user via v2 API should fail. + """ (user, tenant, role) = self._get_role_params() self.roles_client.create_user_role_on_project(tenant['id'], user['id'], @@ -216,7 +239,10 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('67a679ec-03dd-4551-bbfc-d1c93284f023') def test_remove_user_role_non_existent_tenant(self): - # Attempt to remove a role from a non existent tenant should fail + """Test removing a role from a non existent tenant via v2 API + + Removing a role from a non existent tenant via v2 API should fail. + """ (user, tenant, role) = self._get_role_params() self.roles_client.create_user_role_on_project(tenant['id'], user['id'], @@ -229,8 +255,11 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('7391ab4c-06f3-477a-a64a-c8e55ce89837') def test_list_user_roles_by_unauthorized_user(self): - # Non-administrator user should not be authorized to list - # a user's roles + """Test non-admin user listing a user's roles via v2 API + + Non-admin user should not be authorized to list a user's roles via v2 + API. + """ (user, tenant, role) = self._get_role_params() self.roles_client.create_user_role_on_project(tenant['id'], user['id'], @@ -243,7 +272,10 @@ class RolesNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('682adfb2-fd5f-4b0a-a9ca-322e9bebb907') def test_list_user_roles_request_without_token(self): - # Request to list user's roles without a valid token should fail + """Test listing user's roles without a valid token via v2 API + + Listing user's roles without a valid token via v2 API should fail + """ (user, tenant, _) = self._get_role_params() token = self.client.auth_provider.get_token() self.client.delete_token(token) diff --git a/tempest/api/identity/admin/v2/test_tenant_negative.py b/tempest/api/identity/admin/v2/test_tenant_negative.py index 49bb949cf..792dad964 100644 --- a/tempest/api/identity/admin/v2/test_tenant_negative.py +++ b/tempest/api/identity/admin/v2/test_tenant_negative.py @@ -20,18 +20,22 @@ from tempest.lib import exceptions as lib_exc class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): + """Negative tests of keystone tenants via v2 API""" @decorators.attr(type=['negative']) @decorators.idempotent_id('ca9bb202-63dd-4240-8a07-8ef9c19c04bb') def test_list_tenants_by_unauthorized_user(self): - # Non-administrator user should not be able to list tenants + """Test Non-admin should not be able to list tenants via v2 API""" self.assertRaises(lib_exc.Forbidden, self.non_admin_tenants_client.list_tenants) @decorators.attr(type=['negative']) @decorators.idempotent_id('df33926c-1c96-4d8d-a762-79cc6b0c3cf4') def test_list_tenant_request_without_token(self): - # Request to list tenants without a valid token should fail + """Test listing tenants without a valid token via v2 API + + Listing tenants without a valid token via v2 API should fail. + """ token = self.client.auth_provider.get_token() self.client.delete_token(token) self.assertRaises(lib_exc.Unauthorized, @@ -41,7 +45,7 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('162ba316-f18b-4987-8c0c-fd9140cd63ed') def test_tenant_delete_by_unauthorized_user(self): - # Non-administrator user should not be able to delete a tenant + """Test non-admin should not be able to delete a tenant via v2 API""" tenant = self.setup_test_tenant() self.assertRaises(lib_exc.Forbidden, self.non_admin_tenants_client.delete_tenant, @@ -50,7 +54,10 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('e450db62-2e9d-418f-893a-54772d6386b1') def test_tenant_delete_request_without_token(self): - # Request to delete a tenant without a valid token should fail + """Test deleting a tenant without a valid token via v2 API + + Deleting a tenant without a valid token via v2 API should fail. + """ tenant = self.setup_test_tenant() token = self.client.auth_provider.get_token() self.client.delete_token(token) @@ -62,14 +69,14 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('9c9a2aed-6e3c-467a-8f5c-89da9d1b516b') def test_delete_non_existent_tenant(self): - # Attempt to delete a non existent tenant should fail + """Test deleting a non existent tenant via v2 API should fail""" self.assertRaises(lib_exc.NotFound, self.tenants_client.delete_tenant, data_utils.rand_uuid_hex()) @decorators.attr(type=['negative']) @decorators.idempotent_id('af16f44b-a849-46cb-9f13-a751c388f739') def test_tenant_create_duplicate(self): - # Tenant names should be unique + """Test tenant names should be unique via v2 API""" tenant_name = data_utils.rand_name(name='tenant') self.setup_test_tenant(name=tenant_name) self.assertRaises(lib_exc.Conflict, self.tenants_client.create_tenant, @@ -78,7 +85,10 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('d26b278a-6389-4702-8d6e-5980d80137e0') def test_create_tenant_by_unauthorized_user(self): - # Non-administrator user should not be authorized to create a tenant + """Test non-admin user creating a tenant via v2 API + + Non-admin user should not be authorized to create a tenant via v2 API. + """ tenant_name = data_utils.rand_name(name='tenant') self.assertRaises(lib_exc.Forbidden, self.non_admin_tenants_client.create_tenant, @@ -87,7 +97,7 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('a3ee9d7e-6920-4dd5-9321-d4b2b7f0a638') def test_create_tenant_request_without_token(self): - # Create tenant request without a token should not be authorized + """Test creating tenant without a token via v2 API is not allowed""" tenant_name = data_utils.rand_name(name='tenant') token = self.client.auth_provider.get_token() self.client.delete_token(token) @@ -99,7 +109,7 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('5a2e4ca9-b0c0-486c-9c48-64a94fba2395') def test_create_tenant_with_empty_name(self): - # Tenant name should not be empty + """Test tenant name should not be empty via v2 API""" self.assertRaises(lib_exc.BadRequest, self.tenants_client.create_tenant, name='') @@ -107,7 +117,7 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('2ff18d1e-dfe3-4359-9dc3-abf582c196b9') def test_create_tenants_name_length_over_64(self): - # Tenant name length should not be greater than 64 characters + """Test tenant name length should not exceed 64 via v2 API""" tenant_name = 'a' * 65 self.assertRaises(lib_exc.BadRequest, self.tenants_client.create_tenant, @@ -116,14 +126,17 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('bd20dc2a-9557-4db7-b755-f48d952ad706') def test_update_non_existent_tenant(self): - # Attempt to update a non existent tenant should fail + """Test updating a non existent tenant via v2 API should fail""" self.assertRaises(lib_exc.NotFound, self.tenants_client.update_tenant, data_utils.rand_uuid_hex()) @decorators.attr(type=['negative']) @decorators.idempotent_id('41704dc5-c5f7-4f79-abfa-76e6fedc570b') def test_tenant_update_by_unauthorized_user(self): - # Non-administrator user should not be able to update a tenant + """Test non-admin user updating a tenant via v2 API + + Non-admin user should not be able to update a tenant via v2 API + """ tenant = self.setup_test_tenant() self.assertRaises(lib_exc.Forbidden, self.non_admin_tenants_client.update_tenant, @@ -132,7 +145,10 @@ class TenantsNegativeTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type=['negative']) @decorators.idempotent_id('7a421573-72c7-4c22-a98e-ce539219c657') def test_tenant_update_request_without_token(self): - # Request to update a tenant without a valid token should fail + """Test updating a tenant without a valid token via v2 API + + Updating a tenant without a valid token via v2 API should fail + """ tenant = self.setup_test_tenant() token = self.client.auth_provider.get_token() self.client.delete_token(token) diff --git a/tempest/api/identity/admin/v2/test_tokens.py b/tempest/api/identity/admin/v2/test_tokens.py index 6ce1a8be5..5d89f9dff 100644 --- a/tempest/api/identity/admin/v2/test_tokens.py +++ b/tempest/api/identity/admin/v2/test_tokens.py @@ -23,9 +23,11 @@ CONF = config.CONF class TokensTestJSON(base.BaseIdentityV2AdminTest): + """Test keystone tokens via v2 API""" @decorators.idempotent_id('453ad4d5-e486-4b2f-be72-cffc8149e586') def test_create_check_get_delete_token(self): + """Test getting create/check/get/delete token for user via v2 API""" # get a token by username and password user_name = data_utils.rand_name(name='user') user_password = data_utils.rand_password() @@ -59,7 +61,7 @@ class TokensTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('25ba82ee-8a32-4ceb-8f50-8b8c71e8765e') def test_rescope_token(self): - """An unscoped token can be requested + """Test an unscoped token can be requested via v2 API That token can be used to request a scoped token. """ @@ -112,6 +114,7 @@ class TokensTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('ca3ea6f7-ed08-4a61-adbd-96906456ad31') def test_list_endpoints_for_token(self): + """Test listing endpoints for token via v2 API""" tempest_services = ['keystone', 'nova', 'neutron', 'swift', 'cinder', 'neutron'] # get a token for the user diff --git a/tempest/api/identity/admin/v2/test_tokens_negative.py b/tempest/api/identity/admin/v2/test_tokens_negative.py index eb3e365ec..f2e41ffff 100644 --- a/tempest/api/identity/admin/v2/test_tokens_negative.py +++ b/tempest/api/identity/admin/v2/test_tokens_negative.py @@ -19,12 +19,17 @@ from tempest.lib import exceptions as lib_exc class TokensAdminTestNegative(base.BaseIdentityV2AdminTest): + """Negative tests of keystone tokens via v2 API""" credentials = ['primary', 'admin', 'alt'] @decorators.attr(type=['negative']) @decorators.idempotent_id('a0a0a600-4292-4364-99c5-922c834fdf05') def test_check_token_existence_negative(self): + """Test checking other tenant's token existence via v2 API + + Checking other tenant's token existence via v2 API should fail. + """ creds = self.os_primary.credentials creds_alt = self.os_alt.credentials username = creds.username diff --git a/tempest/api/identity/admin/v2/test_users.py b/tempest/api/identity/admin/v2/test_users.py index 0d98af5fa..57a321a73 100644 --- a/tempest/api/identity/admin/v2/test_users.py +++ b/tempest/api/identity/admin/v2/test_users.py @@ -23,6 +23,7 @@ from tempest.lib import decorators class UsersTestJSON(base.BaseIdentityV2AdminTest): + """Test keystone users via v2 API""" @classmethod def resource_setup(cls): @@ -33,14 +34,14 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.attr(type='smoke') @decorators.idempotent_id('2d55a71e-da1d-4b43-9c03-d269fd93d905') def test_create_user(self): - # Create a user + """Test creating a user via v2 API""" tenant = self.setup_test_tenant() user = self.create_test_user(name=self.alt_user, tenantId=tenant['id']) self.assertEqual(self.alt_user, user['name']) @decorators.idempotent_id('89d9fdb8-15c2-4304-a429-48715d0af33d') def test_create_user_with_enabled(self): - # Create a user with enabled : False + """Test creating a user with enabled : False via v2 API""" tenant = self.setup_test_tenant() name = data_utils.rand_name('test_user') user = self.create_test_user(name=name, @@ -53,7 +54,7 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('39d05857-e8a5-4ed4-ba83-0b52d3ab97ee') def test_update_user(self): - # Test case to check if updating of user attributes is successful. + """Test updating user attributes via v2 API""" tenant = self.setup_test_tenant() user = self.create_test_user(tenantId=tenant['id']) @@ -75,14 +76,14 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('29ed26f4-a74e-4425-9a85-fdb49fa269d2') def test_delete_user(self): - # Delete a user + """Test deleting a user via v2 API""" tenant = self.setup_test_tenant() user = self.create_test_user(tenantId=tenant['id']) self.users_client.delete_user(user['id']) @decorators.idempotent_id('aca696c3-d645-4f45-b728-63646045beb1') def test_user_authentication(self): - # Valid user's token is authenticated + """Test that valid user's token is authenticated via v2 API""" password = data_utils.rand_password() user = self.setup_test_user(password) tenant = self.tenants_client.show_tenant(user['tenantId'])['tenant'] @@ -97,6 +98,7 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('5d1fa498-4c2d-4732-a8fe-2b054598cfdd') def test_authentication_request_without_token(self): + """Test authentication request without token via v2 API""" # Request for token authentication with a valid token in header password = data_utils.rand_password() user = self.setup_test_user(password) @@ -116,7 +118,10 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('a149c02e-e5e0-4b89-809e-7e8faf33ccda') def test_get_users(self): - # Get a list of users and find the test user + """Test getting users via v2 API + + Get a list of users and find the test user + """ user = self.setup_test_user() users = self.users_client.list_users()['users'] self.assertThat([u['name'] for u in users], @@ -125,7 +130,7 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('6e317209-383a-4bed-9f10-075b7c82c79a') def test_list_users_for_tenant(self): - # Return a list of all users for a tenant + """Test returning a list of all users for a tenant via v2 API""" tenant = self.setup_test_tenant() user_ids = list() fetched_user_ids = list() @@ -147,7 +152,7 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('a8b54974-40e1-41c0-b812-50fc90827971') def test_list_users_with_roles_for_tenant(self): - # Return list of users on tenant when roles are assigned to users + """Test listing users on tenant with roles assigned via v2 API""" user = self.setup_test_user() tenant = self.tenants_client.show_tenant(user['tenantId'])['tenant'] role = self.setup_test_role() @@ -175,7 +180,7 @@ class UsersTestJSON(base.BaseIdentityV2AdminTest): @decorators.idempotent_id('1aeb25ac-6ec5-4d8b-97cb-7ac3567a989f') def test_update_user_password(self): - # Test case to check if updating of user password is successful. + """Test updating of user password via v2 API""" user = self.setup_test_user() tenant = self.tenants_client.show_tenant(user['tenantId'])['tenant'] # Updating the user with new password diff --git a/tempest/api/identity/admin/v3/test_regions.py b/tempest/api/identity/admin/v3/test_regions.py index c8c0151a2..63e456e28 100644 --- a/tempest/api/identity/admin/v3/test_regions.py +++ b/tempest/api/identity/admin/v3/test_regions.py @@ -20,6 +20,8 @@ from tempest.lib import decorators class RegionsTestJSON(base.BaseIdentityV3AdminTest): + """Test regions""" + # NOTE: force_tenant_isolation is true in the base class by default but # overridden to false here to allow test execution for clouds using the # pre-provisioned credentials provider. @@ -44,6 +46,7 @@ class RegionsTestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('56186092-82e4-43f2-b954-91013218ba42') def test_create_update_get_delete_region(self): + """Test creating, updating, getting and updating region""" # Create region r_description = data_utils.rand_name('description') region = self.client.create_region( @@ -81,7 +84,7 @@ class RegionsTestJSON(base.BaseIdentityV3AdminTest): @decorators.attr(type='smoke') @decorators.idempotent_id('2c12c5b5-efcf-4aa5-90c5-bff1ab0cdbe2') def test_create_region_with_specific_id(self): - # Create a region with a specific id + """Test creating region with specific id""" r_region_id = data_utils.rand_uuid() r_description = data_utils.rand_name('description') region = self.client.create_region( @@ -93,7 +96,7 @@ class RegionsTestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('d180bf99-544a-445c-ad0d-0c0d27663796') def test_list_regions(self): - # Get a list of regions + """Test getting a list of regions""" fetched_regions = self.client.list_regions()['regions'] missing_regions =\ [e for e in self.setup_regions if e not in fetched_regions] @@ -104,6 +107,7 @@ class RegionsTestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('2d1057cb-bbde-413a-acdf-e2d265284542') def test_list_regions_filter_by_parent_region_id(self): + """Test listing regions filtered by parent region id""" # Add a sub-region to one of the existing test regions r_description = data_utils.rand_name('description') region = self.client.create_region( diff --git a/tempest/api/identity/admin/v3/test_roles.py b/tempest/api/identity/admin/v3/test_roles.py index 5ba4c9f1f..dd7d5af44 100644 --- a/tempest/api/identity/admin/v3/test_roles.py +++ b/tempest/api/identity/admin/v3/test_roles.py @@ -25,6 +25,8 @@ CONF = config.CONF class RolesV3TestJSON(base.BaseIdentityV3AdminTest): + """Test roles""" + # NOTE: force_tenant_isolation is true in the base class by default but # overridden to false here to allow test execution for clouds using the # pre-provisioned credentials provider. @@ -75,6 +77,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.attr(type='smoke') @decorators.idempotent_id('18afc6c0-46cf-4911-824e-9989cc056c3a') def test_role_create_update_show_list(self): + """Test creating, updating, showing and listing a role""" r_name = data_utils.rand_name('Role') role = self.roles_client.create_role(name=r_name)['role'] self.addCleanup(self.roles_client.delete_role, role['id']) @@ -101,6 +104,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): 'Skipped because environment has an immutable user ' 'source and solely provides read-only access to users.') def test_grant_list_revoke_role_to_user_on_project(self): + """Test granting, listing, revoking role to user on project""" self.roles_client.create_user_role_on_project(self.project['id'], self.user_body['id'], self.role['id']) @@ -122,6 +126,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): 'Skipped because environment has an immutable user ' 'source and solely provides read-only access to users.') def test_grant_list_revoke_role_to_user_on_domain(self): + """Test granting, listing, revoking role to user on domain""" self.roles_client.create_user_role_on_domain( self.domain['id'], self.user_body['id'], self.role['id']) @@ -142,6 +147,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): 'Skipped because environment has an immutable user ' 'source and solely provides read-only access to users.') def test_grant_list_revoke_role_to_group_on_project(self): + """Test granting, listing, revoking role to group on project""" # Grant role to group on project self.roles_client.create_group_role_on_project( self.project['id'], self.group_body['id'], self.role['id']) @@ -175,6 +181,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('4bf8a70b-e785-413a-ad53-9f91ce02faa7') def test_grant_list_revoke_role_to_group_on_domain(self): + """Test granting, listing, revoking role to group on domain""" self.roles_client.create_group_role_on_domain( self.domain['id'], self.group_body['id'], self.role['id']) @@ -192,6 +199,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('f5654bcc-08c4-4f71-88fe-05d64e06de94') def test_list_roles(self): + """Test listing roles""" # Return a list of all roles body = self.roles_client.list_roles()['roles'] found = [role for role in body if role in self.roles] @@ -215,6 +223,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('c90c316c-d706-4728-bcba-eb1912081b69') def test_implied_roles_create_check_show_delete(self): + """Test creating, checking, showing and deleting implied roles""" prior_role_id = self.roles[0]['id'] implies_role_id = self.roles[1]['id'] @@ -248,6 +257,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('dc6f5959-b74d-4e30-a9e5-a8255494ff00') def test_roles_hierarchy(self): + """Test creating implied role and listing role inferences rules""" # Create inference rule from "roles[0]" to "role[1]" self._create_implied_role( self.roles[0]['id'], self.roles[1]['id']) @@ -280,6 +290,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): 'Skipped because environment has an immutable user ' 'source and solely provides read-only access to users.') def test_assignments_for_implied_roles_create_delete(self): + """Test assignments when implied roles are created and deleted""" # Create a grant using "roles[0]" self.roles_client.create_user_role_on_project( self.project['id'], self.user_body['id'], self.roles[0]['id']) @@ -321,6 +332,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('d92a41d2-5501-497a-84bb-6e294330e8f8') def test_domain_roles_create_delete(self): + """Test creating, listing and deleting domain roles""" domain_role = self.roles_client.create_role( name=data_utils.rand_name('domain_role'), domain_id=self.domain['id'])['role'] @@ -341,6 +353,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('eb1e1c24-1bc4-4d47-9748-e127a1852c82') def test_implied_domain_roles(self): + """Test creating implied roles when roles are in domains""" # Create two roles in the same domain domain_role1 = self.setup_test_role(domain_id=self.domain['id']) domain_role2 = self.setup_test_role(domain_id=self.domain['id']) @@ -373,6 +386,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): 'Skipped because environment has an immutable user ' 'source and solely provides read-only access to users.') def test_assignments_for_domain_roles(self): + """Test assignments for domain roles""" domain_role = self.setup_test_role(domain_id=self.domain['id']) # Create a grant using "domain_role" @@ -395,6 +409,7 @@ class RolesV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('3748c316-c18f-4b08-997b-c60567bc6235') def test_list_all_implied_roles(self): + """Test listing all implied roles""" # Create inference rule from "roles[0]" to "roles[1]" self._create_implied_role( self.roles[0]['id'], self.roles[1]['id']) diff --git a/tempest/api/identity/admin/v3/test_tokens.py b/tempest/api/identity/admin/v3/test_tokens.py index 5f1b58d56..f3a747141 100644 --- a/tempest/api/identity/admin/v3/test_tokens.py +++ b/tempest/api/identity/admin/v3/test_tokens.py @@ -24,6 +24,7 @@ CONF = config.CONF class TokensV3TestJSON(base.BaseIdentityV3AdminTest): + """Test tokens""" credentials = ['primary', 'admin', 'alt'] @@ -123,6 +124,7 @@ class TokensV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('08ed85ce-2ba8-4864-b442-bcc61f16ae89') def test_get_available_project_scopes(self): + """Test getting available project scopes""" manager_project_id = self.os_primary.credentials.project_id admin_user_id = self.os_admin.credentials.user_id admin_role_id = self.get_role_by_name(CONF.identity.admin_role)['id'] @@ -152,10 +154,13 @@ class TokensV3TestJSON(base.BaseIdentityV3AdminTest): @decorators.idempotent_id('ec5ecb05-af64-4c04-ac86-4d9f6f12f185') def test_get_available_domain_scopes(self): - # Test for verifying that listing domain scopes for a user works if - # the user has a domain role or belongs to a group that has a domain - # role. For this test, admin client is used to add roles to alt user, - # which performs API calls, to avoid 401 Unauthorized errors. + """Test getting available domain scopes + + To verify that listing domain scopes for a user works if + the user has a domain role or belongs to a group that has a domain + role. For this test, admin client is used to add roles to alt user, + which performs API calls, to avoid 401 Unauthorized errors. + """ alt_user_id = self.os_alt.credentials.user_id def _create_user_domain_role_for_alt_user(): diff --git a/tempest/api/identity/v3/test_application_credentials.py b/tempest/api/identity/v3/test_application_credentials.py index 1cee902bd..ef1bbdf7c 100644 --- a/tempest/api/identity/v3/test_application_credentials.py +++ b/tempest/api/identity/v3/test_application_credentials.py @@ -23,6 +23,7 @@ from tempest.lib import decorators class ApplicationCredentialsV3Test(base.BaseApplicationCredentialsV3Test): + """Test application credentials""" def _list_app_creds(self, name=None): kwargs = dict(user_id=self.user_id) @@ -33,6 +34,7 @@ class ApplicationCredentialsV3Test(base.BaseApplicationCredentialsV3Test): @decorators.idempotent_id('8080c75c-eddc-4786-941a-c2da7039ae61') def test_create_application_credential(self): + """Test creating application credential""" app_cred = self.create_application_credential() # Check that the secret appears in the create response @@ -55,6 +57,7 @@ class ApplicationCredentialsV3Test(base.BaseApplicationCredentialsV3Test): @decorators.idempotent_id('852daf0c-42b5-4239-8466-d193d0543ed3') def test_create_application_credential_expires(self): + """Test creating application credential with expire time""" expires_at = timeutils.utcnow() + datetime.timedelta(hours=1) app_cred = self.create_application_credential(expires_at=expires_at) @@ -64,6 +67,7 @@ class ApplicationCredentialsV3Test(base.BaseApplicationCredentialsV3Test): @decorators.idempotent_id('ff0cd457-6224-46e7-b79e-0ada4964a8a6') def test_list_application_credentials(self): + """Test listing application credentials""" self.create_application_credential() self.create_application_credential() @@ -72,6 +76,7 @@ class ApplicationCredentialsV3Test(base.BaseApplicationCredentialsV3Test): @decorators.idempotent_id('9bb5e5cc-5250-493a-8869-8b665f6aa5f6') def test_query_application_credentials(self): + """Test listing application credentials filtered by name""" self.create_application_credential() app_cred_two = self.create_application_credential() app_cred_two_name = app_cred_two['name'] |