From 668451751411b0d43ecc0791c6524e7e9a0cd21e Mon Sep 17 00:00:00 2001 From: Jan Friedli Date: Fri, 21 Aug 2020 09:09:19 +0200 Subject: added endpoint to clean file and return it directly for automated clients --- test/test_api.py | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/test_api.py b/test/test_api.py index 6961197..6d48a35 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -1,13 +1,15 @@ -import unittest -import tempfile import json import os import shutil +import tempfile +import unittest import zipfile -from six import BytesIO +import io from unittest.mock import patch + from openapi_spec_validator import validate_spec +from six import BytesIO import main @@ -433,5 +435,60 @@ class Mat2APITestCase(unittest.TestCase): spec = self.app.get('apispec_1.json').get_json() validate_spec(spec) + def test_remove_metadata(self): + r = self.app.post( + '/api/remove_metadata', + data=dict( + file=(io.BytesIO(b""), 'test.txt'), + ), + follow_redirects=False + ) + self.assertEqual(r.status_code, 200) + self.assertEqual(r.headers['Content-Disposition'], 'attachment; filename=test.cleaned.txt') + self.assertEqual(r.headers['Content-Type'], 'text/plain; charset=utf-8') + self.assertEqual(r.data, b'') + + def test_remove_metdata_validation(self): + r = self.app.post( + '/api/remove_metadata', + data=dict( + fileNotExisting=(io.BytesIO(b""), 'test.random'), + ), + follow_redirects=False + ) + self.assertEqual(r.get_json()['message'], 'No file part') + self.assertEqual(r.status_code, 400) + + r = self.app.post( + '/api/remove_metadata', + data=dict( + file=(io.BytesIO(b""), ''), + ), + follow_redirects=False + ) + self.assertEqual(r.get_json()['message'], 'No selected `file`') + self.assertEqual(r.status_code, 400) + + r = self.app.post( + '/api/remove_metadata', + data=dict( + file=(io.BytesIO(b""), '../../'), + ), + follow_redirects=False + ) + self.assertEqual(r.get_json()['message'], 'Invalid Filename') + self.assertEqual(r.status_code, 400) + + r = self.app.post( + '/api/remove_metadata', + data=dict( + file=(io.BytesIO(b""), 'test.random'), + ), + follow_redirects=False + ) + self.assertEqual(r.get_json()['message'], 'The type None is not supported') + self.assertEqual(r.status_code, 415) + + if __name__ == '__main__': unittest.main() -- cgit v1.3