summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--matweb/rest_api.py6
-rw-r--r--test/test_api.py8
2 files changed, 13 insertions, 1 deletions
diff --git a/matweb/rest_api.py b/matweb/rest_api.py
index d44d838..48dcc10 100644
--- a/matweb/rest_api.py
+++ b/matweb/rest_api.py
@@ -26,8 +26,12 @@ class APIUpload(Resource):
26 req_parser = reqparse.RequestParser() 26 req_parser = reqparse.RequestParser()
27 req_parser.add_argument('file_name', type=str, required=True, help='Post parameter is not specified: file_name') 27 req_parser.add_argument('file_name', type=str, required=True, help='Post parameter is not specified: file_name')
28 req_parser.add_argument('file', type=str, required=True, help='Post parameter is not specified: file') 28 req_parser.add_argument('file', type=str, required=True, help='Post parameter is not specified: file')
29 try:
30 args = req_parser.parse_args()
31 except ValueError as e:
32 current_app.logger.error('Upload - failed parsing arguments %s', e)
33 abort(400, message='Failed parsing body')
29 34
30 args = req_parser.parse_args()
31 try: 35 try:
32 file_data = base64.b64decode(args['file']) 36 file_data = base64.b64decode(args['file'])
33 except (binascii.Error, ValueError) as e: 37 except (binascii.Error, ValueError) as e:
diff --git a/test/test_api.py b/test/test_api.py
index 8be165e..878b0ab 100644
--- a/test/test_api.py
+++ b/test/test_api.py
@@ -432,6 +432,14 @@ class Mat2APITestCase(unittest.TestCase):
432 self.assertEqual(400, request.status_code) 432 self.assertEqual(400, request.status_code)
433 self.assertEqual("Failed decoding file", error_message) 433 self.assertEqual("Failed decoding file", error_message)
434 434
435 request = self.app.post('/api/upload',
436 data="\"\'\'\'&&cat$z $z/etc$z/passwdu0000\"",
437 headers={'content-type': 'application/json'}
438 )
439 error_message = request.get_json()['message']
440 self.assertEqual(400, request.status_code)
441 self.assertEqual("Failed parsing body", error_message)
442
435 def test_valid_opena_api_spec(self): 443 def test_valid_opena_api_spec(self):
436 spec = self.app.get('apispec_1.json').get_json() 444 spec = self.app.get('apispec_1.json').get_json()
437 validate_spec(spec) 445 validate_spec(spec)