summaryrefslogtreecommitdiff
path: root/keystoneclient/tests/unit/v3/test_roles.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystoneclient/tests/unit/v3/test_roles.py')
-rw-r--r--keystoneclient/tests/unit/v3/test_roles.py122
1 files changed, 122 insertions, 0 deletions
diff --git a/keystoneclient/tests/unit/v3/test_roles.py b/keystoneclient/tests/unit/v3/test_roles.py
index 2a71bf3..79ac07d 100644
--- a/keystoneclient/tests/unit/v3/test_roles.py
+++ b/keystoneclient/tests/unit/v3/test_roles.py
@@ -17,6 +17,7 @@ import uuid
from keystoneclient import exceptions
from keystoneclient.tests.unit.v3 import utils
from keystoneclient.v3 import roles
+from testtools import matchers
class RoleTests(utils.TestCase, utils.CrudTests):
@@ -44,6 +45,20 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.grant(role=ref['id'], domain=domain_id, user=user_id)
+ def test_domain_role_grant_inherited(self):
+ user_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref = self.new_ref()
+
+ self.stub_url('PUT',
+ ['OS-INHERIT', 'domains', domain_id, 'users', user_id,
+ self.collection_key, ref['id'],
+ 'inherited_to_projects'],
+ status_code=201)
+
+ self.manager.grant(role=ref['id'], domain=domain_id, user=user_id,
+ os_inherit_extension_inherited=True)
+
def test_domain_group_role_grant(self):
group_id = uuid.uuid4().hex
domain_id = uuid.uuid4().hex
@@ -56,6 +71,20 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.grant(role=ref['id'], domain=domain_id, group=group_id)
+ def test_domain_group_role_grant_inherited(self):
+ group_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref = self.new_ref()
+
+ self.stub_url('PUT',
+ ['OS-INHERIT', 'domains', domain_id, 'groups', group_id,
+ self.collection_key, ref['id'],
+ 'inherited_to_projects'],
+ status_code=201)
+
+ self.manager.grant(role=ref['id'], domain=domain_id, group=group_id,
+ os_inherit_extension_inherited=True)
+
def test_domain_role_list(self):
user_id = uuid.uuid4().hex
domain_id = uuid.uuid4().hex
@@ -67,6 +96,23 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.list(domain=domain_id, user=user_id)
+ def test_domain_role_list_inherited(self):
+ user_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref_list = [self.new_ref(), self.new_ref()]
+
+ self.stub_entity('GET',
+ ['OS-INHERIT',
+ 'domains', domain_id, 'users', user_id,
+ self.collection_key, 'inherited_to_projects'],
+ entity=ref_list)
+
+ returned_list = self.manager.list(domain=domain_id, user=user_id,
+ os_inherit_extension_inherited=True)
+
+ self.assertThat(ref_list, matchers.HasLength(len(returned_list)))
+ [self.assertIsInstance(r, self.model) for r in returned_list]
+
def test_domain_group_role_list(self):
group_id = uuid.uuid4().hex
domain_id = uuid.uuid4().hex
@@ -78,6 +124,23 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.list(domain=domain_id, group=group_id)
+ def test_domain_group_role_list_inherited(self):
+ group_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref_list = [self.new_ref(), self.new_ref()]
+
+ self.stub_entity('GET',
+ ['OS-INHERIT',
+ 'domains', domain_id, 'groups', group_id,
+ self.collection_key, 'inherited_to_projects'],
+ entity=ref_list)
+
+ returned_list = self.manager.list(domain=domain_id, group=group_id,
+ os_inherit_extension_inherited=True)
+
+ self.assertThat(ref_list, matchers.HasLength(len(returned_list)))
+ [self.assertIsInstance(r, self.model) for r in returned_list]
+
def test_domain_role_check(self):
user_id = uuid.uuid4().hex
domain_id = uuid.uuid4().hex
@@ -91,6 +154,21 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.check(role=ref['id'], domain=domain_id,
user=user_id)
+ def test_domain_role_check_inherited(self):
+ user_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref = self.new_ref()
+
+ self.stub_url('HEAD',
+ ['OS-INHERIT',
+ 'domains', domain_id, 'users', user_id,
+ self.collection_key, ref['id'],
+ 'inherited_to_projects'],
+ status_code=204)
+
+ self.manager.check(role=ref['id'], domain=domain_id,
+ user=user_id, os_inherit_extension_inherited=True)
+
def test_domain_group_role_check(self):
return
group_id = uuid.uuid4().hex
@@ -104,6 +182,21 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.check(role=ref['id'], domain=domain_id, group=group_id)
+ def test_domain_group_role_check_inherited(self):
+ group_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref = self.new_ref()
+
+ self.stub_url('HEAD',
+ ['OS-INHERIT',
+ 'domains', domain_id, 'groups', group_id,
+ self.collection_key, ref['id'],
+ 'inherited_to_projects'],
+ status_code=204)
+
+ self.manager.check(role=ref['id'], domain=domain_id,
+ group=group_id, os_inherit_extension_inherited=True)
+
def test_domain_role_revoke(self):
user_id = uuid.uuid4().hex
domain_id = uuid.uuid4().hex
@@ -128,6 +221,35 @@ class RoleTests(utils.TestCase, utils.CrudTests):
self.manager.revoke(role=ref['id'], domain=domain_id, group=group_id)
+ def test_domain_role_revoke_inherited(self):
+ user_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref = self.new_ref()
+
+ self.stub_url('DELETE',
+ ['OS-INHERIT', 'domains', domain_id, 'users', user_id,
+ self.collection_key, ref['id'],
+ 'inherited_to_projects'],
+ status_code=204)
+
+ self.manager.revoke(role=ref['id'], domain=domain_id,
+ user=user_id, os_inherit_extension_inherited=True)
+
+ def test_domain_group_role_revoke_inherited(self):
+ group_id = uuid.uuid4().hex
+ domain_id = uuid.uuid4().hex
+ ref = self.new_ref()
+
+ self.stub_url('DELETE',
+ ['OS-INHERIT', 'domains', domain_id, 'groups', group_id,
+ self.collection_key, ref['id'],
+ 'inherited_to_projects'],
+ status_code=200)
+
+ self.manager.revoke(role=ref['id'], domain=domain_id,
+ group=group_id,
+ os_inherit_extension_inherited=True)
+
def test_project_role_grant(self):
user_id = uuid.uuid4().hex
project_id = uuid.uuid4().hex