Merge "Correct plan-remove-role to handle return of delete correctly"

This commit is contained in:
Jenkins 2015-05-07 17:35:18 +00:00 committed by Gerrit Code Review
commit 228b1bc14b
3 changed files with 14 additions and 9 deletions

View File

@ -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)

View File

@ -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'),

View File

@ -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.