Merge "Adding description for testcases - identity part2"
This commit is contained in:
commit
25ec807af3
|
@ -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',
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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'])
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -24,9 +24,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
|
||||
|
@ -69,7 +71,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
|
||||
|
@ -120,9 +122,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
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue