summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-09-26 11:37:39 +0000
committerGerrit Code Review <review@openstack.org>2016-09-26 11:37:39 +0000
commitec930d1b326321639f332289ba0ab41f690b3887 (patch)
tree67c055048ce338e8f74b054e71e75b21fcef3d35
parent050617e36c24f597d4ea9c0bd49f86193297ae69 (diff)
parent8b07996ad29903ea59ab7fc0c7042c8efcf816ce (diff)
downloadpython-keystoneclient-ec930d1b326321639f332289ba0ab41f690b3887.tar.gz
Merge "Correct output for Implied Roles"
-rw-r--r--keystoneclient/tests/unit/v3/test_roles.py25
-rw-r--r--keystoneclient/v3/roles.py3
2 files changed, 26 insertions, 2 deletions
diff --git a/keystoneclient/tests/unit/v3/test_roles.py b/keystoneclient/tests/unit/v3/test_roles.py
index bcf2948..7dfd7f2 100644
--- a/keystoneclient/tests/unit/v3/test_roles.py
+++ b/keystoneclient/tests/unit/v3/test_roles.py
@@ -621,11 +621,34 @@ class RoleTests(utils.ClientTestCase, utils.CrudTests):
def test_implied_role_create(self):
prior_role_id = uuid.uuid4().hex
implied_role_id = uuid.uuid4().hex
+ test_json = {
+ "role_inference": {
+ "prior_role": {
+ "id": prior_role_id,
+ "links": {},
+ "name": "prior role name"
+ },
+ "implies": {
+ "id": implied_role_id,
+ "links": {},
+ "name": "implied role name"
+ }
+ },
+ "links": {}
+ }
+
self.stub_url('PUT',
['roles', prior_role_id, 'implies', implied_role_id],
+ json=test_json,
status_code=200)
- self.manager.create_implied(prior_role_id, implied_role_id)
+ returned_rule = self.manager.create_implied(
+ prior_role_id, implied_role_id)
+
+ self.assertEqual(test_json['role_inference']['implies'],
+ returned_rule.implies)
+ self.assertEqual(test_json['role_inference']['prior_role'],
+ returned_rule.prior_role)
def test_implied_role_delete(self):
prior_role_id = uuid.uuid4().hex
diff --git a/keystoneclient/v3/roles.py b/keystoneclient/v3/roles.py
index 7d5742c..c083856 100644
--- a/keystoneclient/v3/roles.py
+++ b/keystoneclient/v3/roles.py
@@ -136,7 +136,8 @@ class RoleManager(base.CrudManager):
"""
url_tail = self._implied_role_url_tail(prior_role, implied_role)
- self.client.put("/roles" + url_tail, **kwargs)
+ resp, body = self.client.put("/roles" + url_tail, **kwargs)
+ return self.resource_class(self, body['role_inference'])
def delete_implied(self, prior_role, implied_role, **kwargs):
"""Delete an inference rule.