summaryrefslogtreecommitdiffstats
path: root/tests/test_v3_identity.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_v3_identity.py')
-rw-r--r--tests/test_v3_identity.py219
1 files changed, 100 insertions, 119 deletions
diff --git a/tests/test_v3_identity.py b/tests/test_v3_identity.py
index 5236cddc..8805b6d8 100644
--- a/tests/test_v3_identity.py
+++ b/tests/test_v3_identity.py
@@ -49,12 +49,12 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# domain validation
- def assertValidDomainListResponse(self, resp, ref):
+ def assertValidDomainListResponse(self, resp, **kwargs):
return self.assertValidListResponse(
resp,
'domains',
self.assertValidDomain,
- ref)
+ **kwargs)
def assertValidDomainResponse(self, resp, ref):
return self.assertValidResponse(
@@ -70,12 +70,12 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# project validation
- def assertValidProjectListResponse(self, resp, ref):
+ def assertValidProjectListResponse(self, resp, **kwargs):
return self.assertValidListResponse(
resp,
'projects',
self.assertValidProject,
- ref)
+ **kwargs)
def assertValidProjectResponse(self, resp, ref):
return self.assertValidResponse(
@@ -92,12 +92,12 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# user validation
- def assertValidUserListResponse(self, resp, ref):
+ def assertValidUserListResponse(self, resp, **kwargs):
return self.assertValidListResponse(
resp,
'users',
self.assertValidUser,
- ref)
+ **kwargs)
def assertValidUserResponse(self, resp, ref):
return self.assertValidResponse(
@@ -117,12 +117,12 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# group validation
- def assertValidGroupListResponse(self, resp, ref):
+ def assertValidGroupListResponse(self, resp, **kwargs):
return self.assertValidListResponse(
resp,
'groups',
self.assertValidGroup,
- ref)
+ **kwargs)
def assertValidGroupResponse(self, resp, ref):
return self.assertValidResponse(
@@ -139,12 +139,12 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# credential validation
- def assertValidCredentialListResponse(self, resp, ref):
+ def assertValidCredentialListResponse(self, resp, **kwargs):
return self.assertValidListResponse(
resp,
'credentials',
self.assertValidCredential,
- ref)
+ **kwargs)
def assertValidCredentialResponse(self, resp, ref):
return self.assertValidResponse(
@@ -166,12 +166,12 @@ class IdentityTestCase(test_v3.RestfulTestCase):
# role validation
- def assertValidRoleListResponse(self, resp, ref):
+ def assertValidRoleListResponse(self, resp, **kwargs):
return self.assertValidListResponse(
resp,
'roles',
self.assertValidRole,
- ref)
+ **kwargs)
def assertValidRoleResponse(self, resp, ref):
return self.assertValidResponse(
@@ -186,27 +186,6 @@ class IdentityTestCase(test_v3.RestfulTestCase):
self.assertEqual(ref['name'], entity['name'])
return entity
- # grant validation
-
- def assertValidGrantListResponse(self, resp, ref):
- entities = resp.body
- self.assertIsNotNone(entities)
- self.assertTrue(len(entities))
- for i, entity in enumerate(entities):
- self.assertValidEntity(entity)
- self.assertValidGrant(entity, ref)
- if ref and entity['id'] == ref['id'][0]:
- self.assertValidEntity(entity, ref)
- self.assertValidGrant(entity, ref)
-
- def assertValidGrant(self, entity, ref=None):
- self.assertIsNotNone(entity.get('id'))
- self.assertIsNotNone(entity.get('name'))
- if ref:
- self.assertEqual(ref['id'], entity['id'])
- self.assertEqual(ref['name'], entity['name'])
- return entity
-
# domain crud tests
def test_create_domain(self):
@@ -220,7 +199,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
def test_list_domains(self):
"""GET /domains"""
r = self.get('/domains')
- self.assertValidDomainListResponse(r, self.domain)
+ self.assertValidDomainListResponse(r, ref=self.domain)
def test_get_domain(self):
"""GET /domains/{domain_id}"""
@@ -268,7 +247,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
def test_list_projects(self):
"""GET /projects"""
r = self.get('/projects')
- self.assertValidProjectListResponse(r, self.project)
+ self.assertValidProjectListResponse(r, ref=self.project)
def test_create_project(self):
"""POST /projects"""
@@ -314,7 +293,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
def test_list_users(self):
"""GET /users"""
r = self.get('/users')
- self.assertValidUserListResponse(r, self.user)
+ self.assertValidUserListResponse(r, ref=self.user)
def test_get_user(self):
"""GET /users/{user_id}"""
@@ -340,7 +319,9 @@ class IdentityTestCase(test_v3.RestfulTestCase):
'group_id': self.group_id, 'user_id': self.user_id})
r = self.get('/groups/%(group_id)s/users' % {
'group_id': self.group_id})
- self.assertValidUserListResponse(r, self.user)
+ self.assertValidUserListResponse(r, ref=self.user)
+ self.assertIn('/groups/%(group_id)s/users' % {
+ 'group_id': self.group_id}, r.body['links']['self'])
def test_remove_user_from_group(self):
"""DELETE /groups/{group_id}/users/{user_id}"""
@@ -376,7 +357,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
def test_list_groups(self):
"""GET /groups"""
r = self.get('/groups')
- self.assertValidGroupListResponse(r, self.group)
+ self.assertValidGroupListResponse(r, ref=self.group)
def test_get_group(self):
"""GET /groups/{group_id}"""
@@ -403,7 +384,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
def test_list_credentials(self):
"""GET /credentials"""
r = self.get('/credentials')
- self.assertValidCredentialListResponse(r, self.credential)
+ self.assertValidCredentialListResponse(r, ref=self.credential)
def test_create_credential(self):
"""POST /credentials"""
@@ -451,7 +432,7 @@ class IdentityTestCase(test_v3.RestfulTestCase):
def test_list_roles(self):
"""GET /roles"""
r = self.get('/roles')
- self.assertValidRoleListResponse(r, self.role)
+ self.assertValidRoleListResponse(r, ref=self.role)
def test_get_role(self):
"""GET /roles/{role_id}"""
@@ -473,82 +454,82 @@ class IdentityTestCase(test_v3.RestfulTestCase):
self.delete('/roles/%(role_id)s' % {
'role_id': self.role_id})
- def test_create_user_project_grant(self):
- """PUT /projects/{project_id}/users/{user_id}/roles/{role_id}"""
- self.put('/projects/%(project_id)s/users/%(user_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'user_id': self.user_id,
- 'role_id': self.role_id})
- self.head('/projects/%(project_id)s/users/%(user_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'user_id': self.user_id,
- 'role_id': self.role_id})
-
- def test_create_group_project_grant(self):
- """PUT /projects/{project_id}/groups/{group_id}/roles/{role_id}"""
- self.put('/projects/%(project_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
- self.head('/projects/%(project_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
-
- def test_create_group_domain_grant(self):
- """PUT /domains/{domain_id}/groups/{group_id}/roles/{role_id}"""
- self.put('/domains/%(domain_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'domain_id': self.domain_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
- self.head('/domains/%(domain_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'domain_id': self.domain_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
-
- def test_list_user_project_grants(self):
- """GET /projects/{project_id}/users/{user_id}/roles"""
- self.put('/projects/%(project_id)s/users/%(user_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'user_id': self.user_id,
- 'role_id': self.role_id})
- r = self.get('/projects/%(project_id)s/users/%(user_id)s/roles' % {
- 'project_id': self.project_id,
- 'user_id': self.user_id})
- self.assertValidGrantListResponse(r, self.role)
-
- def test_list_group_project_grants(self):
- """GET /projects/{project_id}/groups/{group_id}/roles"""
- self.put('/projects/%(project_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
- r = self.get('/projects/%(project_id)s/groups/%(group_id)s/roles' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id})
- self.assertValidGrantListResponse(r, self.role)
-
- def test_delete_group_project_grant(self):
- """DELETE /projects/{project_id}/groups/{group_id}/roles/{role_id}"""
- self.put('/projects/%(project_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
- self.delete('/projects/%(project_id)s/groups/%(group_id)s/roles/'
- '%(role_id)s' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id,
- 'role_id': self.role_id})
- r = self.get('/projects/%(project_id)s/groups/%(group_id)s/roles' % {
- 'project_id': self.project_id,
- 'group_id': self.group_id})
- self.assertEquals(len(r.body), 0)
+ def test_crud_user_project_role_grants(self):
+ collection_url = (
+ '/projects/%(project_id)s/users/%(user_id)s/roles' % {
+ 'project_id': self.project_id,
+ 'user_id': self.user_id})
+ member_url = '%(collection_url)s/%(role_id)s' % {
+ 'collection_url': collection_url,
+ 'role_id': self.role_id}
+
+ self.put(member_url)
+ self.head(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, ref=self.role)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ self.delete(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, expected_length=0)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ def test_crud_user_domain_role_grants(self):
+ collection_url = (
+ '/domains/%(domain_id)s/users/%(user_id)s/roles' % {
+ 'domain_id': self.domain_id,
+ 'user_id': self.user_id})
+ member_url = '%(collection_url)s/%(role_id)s' % {
+ 'collection_url': collection_url,
+ 'role_id': self.role_id}
+
+ self.put(member_url)
+ self.head(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, ref=self.role)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ self.delete(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, expected_length=0)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ def test_crud_group_project_role_grants(self):
+ collection_url = (
+ '/projects/%(project_id)s/groups/%(group_id)s/roles' % {
+ 'project_id': self.project_id,
+ 'group_id': self.group_id})
+ member_url = '%(collection_url)s/%(role_id)s' % {
+ 'collection_url': collection_url,
+ 'role_id': self.role_id}
+
+ self.put(member_url)
+ self.head(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, ref=self.role)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ self.delete(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, expected_length=0)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ def test_crud_group_domain_role_grants(self):
+ collection_url = (
+ '/domains/%(domain_id)s/groups/%(group_id)s/roles' % {
+ 'domain_id': self.domain_id,
+ 'group_id': self.group_id})
+ member_url = '%(collection_url)s/%(role_id)s' % {
+ 'collection_url': collection_url,
+ 'role_id': self.role_id}
+
+ self.put(member_url)
+ self.head(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, ref=self.role)
+ self.assertIn(collection_url, r.body['links']['self'])
+
+ self.delete(member_url)
+ r = self.get(collection_url)
+ self.assertValidRoleListResponse(r, expected_length=0)
+ self.assertIn(collection_url, r.body['links']['self'])