diff --git a/tempest/api/identity/v2/test_api_discovery.py b/tempest/api/identity/v2/test_api_discovery.py index 5b9d38c481..afda104f79 100644 --- a/tempest/api/identity/v2/test_api_discovery.py +++ b/tempest/api/identity/v2/test_api_discovery.py @@ -18,11 +18,12 @@ from tempest.lib import decorators class TestApiDiscovery(base.BaseIdentityV2Test): - """Tests for API discovery features.""" + """Tests for identity v2 API discovery features.""" @decorators.attr(type='smoke') @decorators.idempotent_id('ea889a68-a15f-4166-bfb1-c12456eae853') def test_api_version_resources(self): + """Test showing identity v2 api version resources""" descr = self.non_admin_client.show_api_description()['version'] expected_resources = ('id', 'links', 'media-types', 'status', 'updated') @@ -34,6 +35,7 @@ class TestApiDiscovery(base.BaseIdentityV2Test): @decorators.attr(type='smoke') @decorators.idempotent_id('007a0be0-78fe-4fdb-bbee-e9216cc17bb2') def test_api_media_types(self): + """Test showing identity v2 api version media type""" descr = self.non_admin_client.show_api_description()['version'] # Get MIME type bases and descriptions media_types = [(media_type['base'], media_type['type']) for @@ -49,6 +51,7 @@ class TestApiDiscovery(base.BaseIdentityV2Test): @decorators.attr(type='smoke') @decorators.idempotent_id('77fd6be0-8801-48e6-b9bf-38cdd2f253ec') def test_api_version_statuses(self): + """Test showing identity v2 api version status""" descr = self.non_admin_client.show_api_description()['version'] status = descr['status'].lower() supported_statuses = ['current', 'stable', 'experimental', diff --git a/tempest/api/identity/v2/test_extension.py b/tempest/api/identity/v2/test_extension.py index c538c142cc..13555bdf01 100644 --- a/tempest/api/identity/v2/test_extension.py +++ b/tempest/api/identity/v2/test_extension.py @@ -18,10 +18,11 @@ from tempest.lib import decorators class ExtensionTestJSON(base.BaseIdentityV2Test): + """Test extensions in identity v2 API""" @decorators.idempotent_id('85f3f661-f54c-4d48-b563-72ae952b9383') def test_list_extensions(self): - # List all the extensions + """List all the identity extensions via v2 API""" body = self.non_admin_client.list_extensions()['extensions']['values'] self.assertNotEmpty(body) keys = ['name', 'updated', 'alias', 'links', diff --git a/tempest/api/identity/v2/test_tenants.py b/tempest/api/identity/v2/test_tenants.py index b2a6d13c3a..1752b650fb 100644 --- a/tempest/api/identity/v2/test_tenants.py +++ b/tempest/api/identity/v2/test_tenants.py @@ -19,11 +19,13 @@ from tempest.lib import exceptions as lib_exc class IdentityTenantsTest(base.BaseIdentityV2Test): + """Test listing tenants in identity v2 API""" credentials = ['primary', 'alt'] @decorators.idempotent_id('ecae2459-243d-4ba1-ad02-65f15dc82b78') def test_list_tenants_returns_only_authorized_tenants(self): + """Test listing tenants only returns authorized tenants via v2 API""" alt_tenant_name = self.os_alt.credentials.tenant_name resp = self.non_admin_tenants_client.list_tenants() diff --git a/tempest/api/identity/v2/test_tokens.py b/tempest/api/identity/v2/test_tokens.py index 64b81c229b..a928ad9f4f 100644 --- a/tempest/api/identity/v2/test_tokens.py +++ b/tempest/api/identity/v2/test_tokens.py @@ -20,10 +20,11 @@ from tempest.lib import decorators class TokensTest(base.BaseIdentityV2Test): + """Test tokens in identity v2 API""" @decorators.idempotent_id('65ae3b78-91ff-467b-a705-f6678863b8ec') def test_create_token(self): - + """Test creating token for user via v2 API""" token_client = self.non_admin_token_client # get a token for the user diff --git a/tempest/api/identity/v2/test_users.py b/tempest/api/identity/v2/test_users.py index 2eea86093c..a63b45ca6f 100644 --- a/tempest/api/identity/v2/test_users.py +++ b/tempest/api/identity/v2/test_users.py @@ -28,6 +28,7 @@ CONF = config.CONF class IdentityUsersTest(base.BaseIdentityV2Test): + """Test user password in identity v2 API""" @classmethod def resource_setup(cls): @@ -85,6 +86,7 @@ class IdentityUsersTest(base.BaseIdentityV2Test): 'immutable user source and solely ' 'provides read-only access to users.') def test_user_update_own_password(self): + """test updating user's own password via v2 API""" old_pass = self.creds.password old_token = self.non_admin_users_client.token new_pass = data_utils.rand_password() diff --git a/tempest/api/identity/v3/test_api_discovery.py b/tempest/api/identity/v3/test_api_discovery.py index e87d1cd033..ebb96fd1be 100644 --- a/tempest/api/identity/v3/test_api_discovery.py +++ b/tempest/api/identity/v3/test_api_discovery.py @@ -22,10 +22,11 @@ CONF = config.CONF class TestApiDiscovery(base.BaseIdentityV3Test): - """Tests for API discovery features.""" + """Tests for identity API discovery features.""" @decorators.idempotent_id('79aec9ae-710f-4c54-a4fc-3aa25b4feac3') def test_identity_v3_existence(self): + """Test that identity v3 version should exist""" versions = self.non_admin_versions_client.list_versions() found = any( "v3" in version.get('id') @@ -35,9 +36,12 @@ class TestApiDiscovery(base.BaseIdentityV3Test): @decorators.idempotent_id('721f480f-35b6-46c7-846e-047e6acea0dc') @decorators.attr(type='smoke') def test_list_api_versions(self): - # NOTE: Actually this API doesn't depend on v3 API at all, because - # the API operation is "GET /" without v3's endpoint. The reason of - # this test path is just v3 API is CURRENT on Keystone side. + """Test listing identity api versions + + NOTE: Actually this API doesn't depend on v3 API at all, because + the API operation is "GET /" without v3's endpoint. The reason of + this test path is just v3 API is CURRENT on Keystone side. + """ versions = self.non_admin_versions_client.list_versions() expected_resources = ('id', 'links', 'media-types', 'status', 'updated') @@ -49,6 +53,7 @@ class TestApiDiscovery(base.BaseIdentityV3Test): @decorators.attr(type='smoke') @decorators.idempotent_id('b9232f5e-d9e5-4d97-b96c-28d3db4de1bd') def test_api_version_resources(self): + """Test showing identity v3 api version resources""" descr = self.non_admin_client.show_api_description()['version'] expected_resources = ('id', 'links', 'media-types', 'status', 'updated') @@ -60,6 +65,7 @@ class TestApiDiscovery(base.BaseIdentityV3Test): @decorators.attr(type='smoke') @decorators.idempotent_id('657c1970-4722-4189-8831-7325f3bc4265') def test_api_media_types(self): + """Test showing identity v3 api version media type""" descr = self.non_admin_client.show_api_description()['version'] # Get MIME type bases and descriptions media_types = [(media_type['base'], media_type['type']) for @@ -75,6 +81,7 @@ class TestApiDiscovery(base.BaseIdentityV3Test): @decorators.attr(type='smoke') @decorators.idempotent_id('8879a470-abfb-47bb-bb8d-5a7fd279ad1e') def test_api_version_statuses(self): + """Test showing identity v3 api version status""" descr = self.non_admin_client.show_api_description()['version'] status = descr['status'].lower() supported_statuses = ['current', 'stable', 'experimental', diff --git a/tempest/api/identity/v3/test_domains.py b/tempest/api/identity/v3/test_domains.py index 9f132dd8fc..bb62ea6391 100644 --- a/tempest/api/identity/v3/test_domains.py +++ b/tempest/api/identity/v3/test_domains.py @@ -21,6 +21,7 @@ CONF = config.CONF class DefaultDomainTestJSON(base.BaseIdentityV3Test): + """Test identity default domains""" @classmethod def setup_clients(cls): @@ -35,5 +36,6 @@ class DefaultDomainTestJSON(base.BaseIdentityV3Test): @decorators.attr(type='smoke') @decorators.idempotent_id('17a5de24-e6a0-4e4a-a9ee-d85b6e5612b5') def test_default_domain_exists(self): + """Test showing default domain""" domain = self.domains_client.show_domain(self.domain_id)['domain'] self.assertTrue(domain['enabled']) diff --git a/tempest/api/identity/v3/test_projects.py b/tempest/api/identity/v3/test_projects.py index bbb40132d4..338b57b3db 100644 --- a/tempest/api/identity/v3/test_projects.py +++ b/tempest/api/identity/v3/test_projects.py @@ -19,11 +19,13 @@ from tempest.lib import exceptions as lib_exc class IdentityV3ProjectsTest(base.BaseIdentityV3Test): + """Test identity projects""" credentials = ['primary', 'alt'] @decorators.idempotent_id('86128d46-e170-4644-866a-cc487f699e1d') def test_list_projects_returns_only_authorized_projects(self): + """Test listing projects only returns authorized projects""" alt_project_name = self.os_alt.credentials.project_name resp = self.non_admin_users_client.list_user_projects( self.os_primary.credentials.user_id) diff --git a/tempest/api/identity/v3/test_tokens.py b/tempest/api/identity/v3/test_tokens.py index fa1c47ffc4..c557428193 100644 --- a/tempest/api/identity/v3/test_tokens.py +++ b/tempest/api/identity/v3/test_tokens.py @@ -22,9 +22,11 @@ from tempest.lib import exceptions as lib_exc class TokensV3Test(base.BaseIdentityV3Test): + """Test identity tokens""" @decorators.idempotent_id('a9512ac3-3909-48a4-b395-11f438e16260') def test_validate_token(self): + """Test validating token for user""" creds = self.os_primary.credentials user_id = creds.user_id username = creds.username @@ -58,7 +60,7 @@ class TokensV3Test(base.BaseIdentityV3Test): @decorators.idempotent_id('6f8e4436-fc96-4282-8122-e41df57197a9') def test_create_token(self): - + """Test creating token for user""" creds = self.os_primary.credentials user_id = creds.user_id username = creds.username @@ -109,9 +111,12 @@ class TokensV3Test(base.BaseIdentityV3Test): @decorators.idempotent_id('0f9f5a5f-d5cd-4a86-8a5b-c5ded151f212') def test_token_auth_creation_existence_deletion(self): - # Tests basic token auth functionality in a way that is compatible with - # pre-provisioned credentials. The default user is used for token - # authentication. + """Test auth/check existence/delete token for user + + Tests basic token auth functionality in a way that is compatible with + pre-provisioned credentials. The default user is used for token + authentication. + """ # Valid user's token is authenticated user = self.os_primary.credentials diff --git a/tempest/api/identity/v3/test_users.py b/tempest/api/identity/v3/test_users.py index d4e7612dfb..6425ea9cf3 100644 --- a/tempest/api/identity/v3/test_users.py +++ b/tempest/api/identity/v3/test_users.py @@ -28,6 +28,7 @@ CONF = config.CONF class IdentityV3UsersTest(base.BaseIdentityV3Test): + """Test identity user password""" @classmethod def resource_setup(cls): @@ -82,6 +83,7 @@ class IdentityV3UsersTest(base.BaseIdentityV3Test): 'immutable user source and solely ' 'provides read-only access to users.') def test_user_update_own_password(self): + """Test updating user's own password""" old_pass = self.creds.password old_token = self.non_admin_client.token new_pass = data_utils.rand_password() @@ -111,6 +113,7 @@ class IdentityV3UsersTest(base.BaseIdentityV3Test): 'immutable user source and solely ' 'provides read-only access to users.') def test_password_history_check_self_service_api(self): + """Test checking password changing history""" old_pass = self.creds.password new_pass1 = data_utils.rand_password() new_pass2 = data_utils.rand_password() @@ -141,6 +144,7 @@ class IdentityV3UsersTest(base.BaseIdentityV3Test): 'Security compliance not available.') @decorators.idempotent_id('a7ad8bbf-2cff-4520-8c1d-96332e151658') def test_user_account_lockout(self): + """Test locking out user account after failure attempts""" if (CONF.identity.user_lockout_failure_attempts <= 0 or CONF.identity.user_lockout_duration <= 0): raise self.skipException(