Merge "Correct plan-remove-role to handle return of delete correctly"
This commit is contained in:
commit
228b1bc14b
|
@ -216,12 +216,19 @@ class BaseManager(HookableMixin):
|
||||||
else:
|
else:
|
||||||
return self.resource_class(self, body)
|
return self.resource_class(self, body)
|
||||||
|
|
||||||
def _delete(self, url):
|
def _delete(self, url, response_key=None):
|
||||||
"""Delete an object.
|
"""Delete an object.
|
||||||
|
|
||||||
:param url: a partial URL, e.g., '/servers/my-server'
|
: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)
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
|
|
|
@ -110,16 +110,16 @@ class PlanManagerTest(tutils.TestCase):
|
||||||
def test_remove_role(self):
|
def test_remove_role(self):
|
||||||
"""Test assigning Role to a Plan."""
|
"""Test assigning Role to a Plan."""
|
||||||
self.assertThat('delete', tutils.IsMethodOn(self.api))
|
self.assertThat('delete', tutils.IsMethodOn(self.api))
|
||||||
self.api.delete = mock.Mock(return_value=(
|
api_delete_return_mock = mock.Mock()
|
||||||
'resp',
|
self.api.delete = mock.Mock(return_value=api_delete_return_mock)
|
||||||
'fake_plan_data'))
|
|
||||||
self.assertThat('resource_class', tutils.IsMethodOn(self.pm))
|
self.assertThat('resource_class', tutils.IsMethodOn(self.pm))
|
||||||
self.pm.resource_class = mock.Mock(return_value='fake_plan')
|
self.pm.resource_class = mock.Mock(return_value='fake_plan')
|
||||||
|
|
||||||
self.assertEqual(self.pm.remove_role('42', role_uuid='qwert12345'),
|
self.assertEqual(self.pm.remove_role('42', role_uuid='qwert12345'),
|
||||||
'fake_plan')
|
'fake_plan')
|
||||||
self.api.delete.assert_called_with('/plans/42/roles/qwert12345')
|
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):
|
def test_templates_path(self):
|
||||||
self.assertEqual(self.pm._templates_path('42'),
|
self.assertEqual(self.pm._templates_path('42'),
|
||||||
|
|
|
@ -150,9 +150,7 @@ class PlanManager(base.BaseManager):
|
||||||
:rtype: tuskarclient.v2.plans.Plan
|
:rtype: tuskarclient.v2.plans.Plan
|
||||||
"""
|
"""
|
||||||
|
|
||||||
rep, body = self._delete(self._roles_path(plan_uuid, role_uuid))
|
return self._delete(self._roles_path(plan_uuid, role_uuid))
|
||||||
|
|
||||||
return self.resource_class(self, body)
|
|
||||||
|
|
||||||
def templates(self, plan_uuid):
|
def templates(self, plan_uuid):
|
||||||
"""Gets template files from a Plan.
|
"""Gets template files from a Plan.
|
||||||
|
|
Loading…
Reference in New Issue