Fix Armada raising 500 following unsupported media type
This ensures Armada's POST apply endpoint returns a 415 as expected rather than a 500. Unit test added for regression. Change-Id: I765d5e8992f66a3dba3dc3b883fb4037ba1c6d05
This commit is contained in:
parent
efd42dfab2
commit
2f1997c8b1
|
@ -64,7 +64,8 @@ class Apply(api.BaseResource):
|
|||
else:
|
||||
self.error(req.context, "Unknown content-type %s"
|
||||
% req.content_type)
|
||||
self.return_error(
|
||||
# TODO(fmontei): Use falcon.<Relevant API Exception Class> instead.
|
||||
return self.return_error(
|
||||
resp,
|
||||
falcon.HTTP_415,
|
||||
message="Request must be in application/x-yaml"
|
||||
|
|
|
@ -106,6 +106,20 @@ class ArmadaControllerTest(base.BaseControllerTest):
|
|||
self.assertEqual(result.status_code, 400)
|
||||
|
||||
|
||||
class ArmadaControllerNegativeTest(base.BaseControllerTest):
|
||||
|
||||
@test_utils.attr(type=['negative'])
|
||||
def test_armada_apply_raises_415_given_unsupported_media_type(self):
|
||||
"""Tests the POST /api/v1.0/apply endpoint returns 415 given
|
||||
unsupported media type.
|
||||
"""
|
||||
rules = {'armada:create_endpoints': '@'}
|
||||
self.policy.set_rules(rules)
|
||||
|
||||
resp = self.app.simulate_post('/api/v1.0/apply', body=None)
|
||||
self.assertEqual(415, resp.status_code)
|
||||
|
||||
|
||||
class ArmadaControllerNegativeRbacTest(base.BaseControllerTest):
|
||||
|
||||
@test_utils.attr(type=['negative'])
|
||||
|
|
Loading…
Reference in New Issue