Correct plan-remove-role to handle return of delete correctly
The return value from a DELETE was not being handled properly. This will handle it like PUT. If there is a body, return the processed json. Otherwise, return nothing. Change-Id: If93c3830e418f112927d737d28bb338867db5c4c
This commit is contained in:
parent
c8e3799f55
commit
0825f99672
@ -216,12 +216,19 @@ class BaseManager(HookableMixin):
|
||||
else:
|
||||
return self.resource_class(self, body)
|
||||
|
||||
def _delete(self, url):
|
||||
def _delete(self, url, response_key=None):
|
||||
"""Delete an object.
|
||||
|
||||
:param url: a partial URL, e.g., '/servers/my-server'
|
||||
"""
|
||||
return self.client.delete(url)
|
||||
resp = self.client.delete(url)
|
||||
# DELETE requests may not return a body
|
||||
if resp.content:
|
||||
body = resp.json()
|
||||
if response_key is not None:
|
||||
return self.resource_class(self, body[response_key])
|
||||
else:
|
||||
return self.resource_class(self, body)
|
||||
|
||||
|
||||
@six.add_metaclass(abc.ABCMeta)
|
||||
|
@ -110,16 +110,16 @@ class PlanManagerTest(tutils.TestCase):
|
||||
def test_remove_role(self):
|
||||
"""Test assigning Role to a Plan."""
|
||||
self.assertThat('delete', tutils.IsMethodOn(self.api))
|
||||
self.api.delete = mock.Mock(return_value=(
|
||||
'resp',
|
||||
'fake_plan_data'))
|
||||
api_delete_return_mock = mock.Mock()
|
||||
self.api.delete = mock.Mock(return_value=api_delete_return_mock)
|
||||
self.assertThat('resource_class', tutils.IsMethodOn(self.pm))
|
||||
self.pm.resource_class = mock.Mock(return_value='fake_plan')
|
||||
|
||||
self.assertEqual(self.pm.remove_role('42', role_uuid='qwert12345'),
|
||||
'fake_plan')
|
||||
self.api.delete.assert_called_with('/plans/42/roles/qwert12345')
|
||||
self.pm.resource_class.assert_called_with(self.pm, 'fake_plan_data')
|
||||
self.pm.resource_class.assert_called_with(
|
||||
self.pm, api_delete_return_mock.json())
|
||||
|
||||
def test_templates_path(self):
|
||||
self.assertEqual(self.pm._templates_path('42'),
|
||||
|
@ -150,9 +150,7 @@ class PlanManager(base.BaseManager):
|
||||
:rtype: tuskarclient.v2.plans.Plan
|
||||
"""
|
||||
|
||||
rep, body = self._delete(self._roles_path(plan_uuid, role_uuid))
|
||||
|
||||
return self.resource_class(self, body)
|
||||
return self._delete(self._roles_path(plan_uuid, role_uuid))
|
||||
|
||||
def templates(self, plan_uuid):
|
||||
"""Gets template files from a Plan.
|
||||
|
Loading…
x
Reference in New Issue
Block a user