From 8b07996ad29903ea59ab7fc0c7042c8efcf816ce Mon Sep 17 00:00:00 2001 From: Adam Young Date: Sun, 11 Sep 2016 17:58:50 -0400 Subject: [PATCH] Correct output for Implied Roles Change-Id: I66e863fb83f8dfcca2c48116d4377df060f402c3 Closes-Bug: 1622346 --- keystoneclient/tests/unit/v3/test_roles.py | 25 +++++++++++++++++++++- keystoneclient/v3/roles.py | 3 ++- 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 bcf2948ec..7dfd7f2b3 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 7d5742c9b..c08385645 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.