Adds error handling for patching missing plans
Adds try-except block to catch UnknownUUID exception and raise PlanNotFound which is handled correctly and Tuskar returns 404 HTTP status. Add tests. Change-Id: I8e9045998492b3b9f029d5c035546fe725dd589d
This commit is contained in:
parent
452aed4b22
commit
002d347e72
@ -162,6 +162,10 @@ class PlansController(rest.RestController):
|
||||
"""
|
||||
manager = PlansManager()
|
||||
params = [p.to_tuskar_model() for p in param_list]
|
||||
updated_plan = manager.set_parameter_values(plan_uuid, params)
|
||||
try:
|
||||
updated_plan = manager.set_parameter_values(plan_uuid, params)
|
||||
except storage_exceptions.UnknownUUID:
|
||||
LOG.exception('Could not patch plan: %s' % plan_uuid)
|
||||
raise exception.PlanNotFound()
|
||||
transfer_plan = models.Plan.from_tuskar_model(updated_plan)
|
||||
return transfer_plan
|
||||
|
@ -243,3 +243,19 @@ class PlansTests(base.TestCase):
|
||||
self.assertEqual(mock_set.call_args[0][1][0].value, 'bar')
|
||||
self.assertEqual(response.status_int, 201)
|
||||
self.assertEqual(result['name'], p.name)
|
||||
|
||||
@mock.patch('tuskar.manager.plan.PlansManager.set_parameter_values')
|
||||
def test_patch_missing_plan(self, mock_set):
|
||||
# Setup
|
||||
mock_set.side_effect = storage_exceptions.UnknownUUID()
|
||||
|
||||
# Test
|
||||
values = [{'name': 'foo', 'value': 'bar'}]
|
||||
url = URL_PLANS + '/' + 'qwerty12345'
|
||||
response = self.app.patch_json(url, values, status=404)
|
||||
|
||||
# Verify
|
||||
self.assertEqual(mock_set.call_args[0][0], 'qwerty12345')
|
||||
self.assertEqual(mock_set.call_args[0][1][0].name, 'foo')
|
||||
self.assertEqual(mock_set.call_args[0][1][0].value, 'bar')
|
||||
self.assertEqual(response.status_int, 404)
|
||||
|
Loading…
x
Reference in New Issue
Block a user