added missing error handler

This commit is contained in:
jfriedli 2021-08-23 20:42:42 +02:00
parent 18604650d0
commit 0219faa020
No known key found for this signature in database
GPG key ID: B0C0A4C9085372B7
2 changed files with 13 additions and 1 deletions

View file

@ -26,8 +26,12 @@ class APIUpload(Resource):
req_parser = reqparse.RequestParser() req_parser = reqparse.RequestParser()
req_parser.add_argument('file_name', type=str, required=True, help='Post parameter is not specified: file_name') req_parser.add_argument('file_name', type=str, required=True, help='Post parameter is not specified: file_name')
req_parser.add_argument('file', type=str, required=True, help='Post parameter is not specified: file') req_parser.add_argument('file', type=str, required=True, help='Post parameter is not specified: file')
try:
args = req_parser.parse_args()
except ValueError as e:
current_app.logger.error('Upload - failed parsing arguments %s', e)
abort(400, message='Failed parsing body')
args = req_parser.parse_args()
try: try:
file_data = base64.b64decode(args['file']) file_data = base64.b64decode(args['file'])
except (binascii.Error, ValueError) as e: except (binascii.Error, ValueError) as e:

View file

@ -432,6 +432,14 @@ class Mat2APITestCase(unittest.TestCase):
self.assertEqual(400, request.status_code) self.assertEqual(400, request.status_code)
self.assertEqual("Failed decoding file", error_message) self.assertEqual("Failed decoding file", error_message)
request = self.app.post('/api/upload',
data="\"\'\'\'&&cat$z $z/etc$z/passwdu0000\"",
headers={'content-type': 'application/json'}
)
error_message = request.get_json()['message']
self.assertEqual(400, request.status_code)
self.assertEqual("Failed parsing body", error_message)
def test_valid_opena_api_spec(self): def test_valid_opena_api_spec(self):
spec = self.app.get('apispec_1.json').get_json() spec = self.app.get('apispec_1.json').get_json()
validate_spec(spec) validate_spec(spec)