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:
|
else:
|
||||||
self.error(req.context, "Unknown content-type %s"
|
self.error(req.context, "Unknown content-type %s"
|
||||||
% req.content_type)
|
% req.content_type)
|
||||||
self.return_error(
|
# TODO(fmontei): Use falcon.<Relevant API Exception Class> instead.
|
||||||
|
return self.return_error(
|
||||||
resp,
|
resp,
|
||||||
falcon.HTTP_415,
|
falcon.HTTP_415,
|
||||||
message="Request must be in application/x-yaml"
|
message="Request must be in application/x-yaml"
|
||||||
|
|
|
@ -106,6 +106,20 @@ class ArmadaControllerTest(base.BaseControllerTest):
|
||||||
self.assertEqual(result.status_code, 400)
|
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):
|
class ArmadaControllerNegativeRbacTest(base.BaseControllerTest):
|
||||||
|
|
||||||
@test_utils.attr(type=['negative'])
|
@test_utils.attr(type=['negative'])
|
||||||
|
|
Loading…
Reference in New Issue