diff options
| author | Jan Friedli | 2020-04-13 20:56:54 +0200 |
|---|---|---|
| committer | Jan Friedli | 2020-04-13 20:56:54 +0200 |
| commit | 5723f889e1a8d5cf0dbdbdd317b356073ed50a0b (patch) | |
| tree | a49fd81031eda55a795e5d3fb124f738d5a98c9f /test/test.py | |
| parent | 43f97e4f82e6b087289ce79f5380f5b716703e8f (diff) | |
| parent | 7104b2107db592756f4090ba772869eb86d6a44f (diff) | |
Merge branch 'master' into redesign
Diffstat (limited to 'test/test.py')
| -rw-r--r-- | test/test.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/test/test.py b/test/test.py index 34245d9..a7e6627 100644 --- a/test/test.py +++ b/test/test.py | |||
| @@ -1,9 +1,12 @@ | |||
| 1 | import base64 | ||
| 1 | import unittest | 2 | import unittest |
| 2 | import tempfile | 3 | import tempfile |
| 3 | import shutil | 4 | import shutil |
| 4 | import io | 5 | import io |
| 5 | import os | 6 | import os |
| 6 | 7 | ||
| 8 | from unittest.mock import patch | ||
| 9 | |||
| 7 | import main | 10 | import main |
| 8 | 11 | ||
| 9 | 12 | ||
| @@ -62,6 +65,33 @@ class Mat2WebTestCase(unittest.TestCase): | |||
| 62 | rv.data) | 65 | rv.data) |
| 63 | self.assertEqual(rv.status_code, 200) | 66 | self.assertEqual(rv.status_code, 200) |
| 64 | 67 | ||
| 68 | def test_get_upload_no_selected_file(self): | ||
| 69 | rv = self.app.post('/', | ||
| 70 | data=dict( | ||
| 71 | file=(io.BytesIO(b""), ''), | ||
| 72 | ), follow_redirects=True) | ||
| 73 | self.assertIn(b'No selected file', | ||
| 74 | rv.data) | ||
| 75 | self.assertEqual(rv.status_code, 200) | ||
| 76 | |||
| 77 | def test_failed_cleaning(self): | ||
| 78 | zip_file_bytes = base64.b64decode( | ||
| 79 | 'UEsDBBQACAAIAPicPE8AAAAAAAAAAAAAAAAXACAAZmFpbGluZy5ub3Qtd29ya2luZy1le' | ||
| 80 | 'HRVVA0AB+Saj13kmo9d5JqPXXV4CwABBOkDAAAE6QMAAAMAUEsHCAAAAAACAAAAAAAAAFBL' | ||
| 81 | 'AwQUAAgACAD6nDxPAAAAAAAAAAAAAAAACQAgAHRlc3QuanNvblVUDQAH6JqPXeiaj13omo9d' | ||
| 82 | 'dXgLAAEE6QMAAATpAwAAAwBQSwcIAAAAAAIAAAAAAAAAUEsBAhQDFAAIAAgA+Jw8TwAAAAACA' | ||
| 83 | 'AAAAAAAABcAIAAAAAAAAAAAAKSBAAAAAGZhaWxpbmcubm90LXdvcmtpbmctZXh0VVQNAAfkmo9' | ||
| 84 | 'd5JqPXeSaj111eAsAAQTpAwAABOkDAABQSwECFAMUAAgACAD6nDxPAAAAAAIAAAAAAAAACQAgA' | ||
| 85 | 'AAAAAAAAAAApIFnAAAAdGVzdC5qc29uVVQNAAfomo9d6JqPXeiaj111eAsAAQTpAwAABOkDAAB' | ||
| 86 | 'QSwUGAAAAAAIAAgC8AAAAwAAAAAAA' | ||
| 87 | ) | ||
| 88 | rv = self.app.post('/', | ||
| 89 | data=dict( | ||
| 90 | file=(io.BytesIO(zip_file_bytes), 'test.zip'), | ||
| 91 | ), follow_redirects=True) | ||
| 92 | self.assertIn(b'Unable to clean',rv.data) | ||
| 93 | self.assertEqual(rv.status_code, 200) | ||
| 94 | |||
| 65 | def test_get_upload_no_file_name(self): | 95 | def test_get_upload_no_file_name(self): |
| 66 | rv = self.app.post('/', | 96 | rv = self.app.post('/', |
| 67 | data=dict( | 97 | data=dict( |
| @@ -97,6 +127,29 @@ class Mat2WebTestCase(unittest.TestCase): | |||
| 97 | rv = self.app.get('/download/70623619c449a040968cdbea85945bf384fa30ed2d5d24fa3/test.cleaned.txt') | 127 | rv = self.app.get('/download/70623619c449a040968cdbea85945bf384fa30ed2d5d24fa3/test.cleaned.txt') |
| 98 | self.assertEqual(rv.status_code, 302) | 128 | self.assertEqual(rv.status_code, 302) |
| 99 | 129 | ||
| 130 | @patch('file_removal_scheduler.random.randint') | ||
| 131 | def test_upload_leftover(self, randint_mock): | ||
| 132 | randint_mock.return_value = 0 | ||
| 133 | os.environ['MAT2_MAX_FILE_AGE_FOR_REMOVAL'] = '0' | ||
| 134 | app = main.create_app() | ||
| 135 | self.upload_folder = tempfile.mkdtemp() | ||
| 136 | app.config.update( | ||
| 137 | TESTING=True, | ||
| 138 | UPLOAD_FOLDER=self.upload_folder | ||
| 139 | ) | ||
| 140 | app = app.test_client() | ||
| 141 | |||
| 142 | request = self.app.post('/', | ||
| 143 | data=dict( | ||
| 144 | file=(io.BytesIO(b"Some text"), 'test.txt'), | ||
| 145 | ), follow_redirects=True) | ||
| 146 | self.assertEqual(request.status_code, 200) | ||
| 147 | request = app.get( | ||
| 148 | b'/download/4c2e9e6da31a64c70623619c449a040968cdbea85945bf384fa30ed2d5d24fa3/test.cleaned.txt' | ||
| 149 | ) | ||
| 150 | self.assertEqual(302, request.status_code) | ||
| 151 | os.environ['MAT2_MAX_FILE_AGE_FOR_REMOVAL'] = '9999' | ||
| 152 | |||
| 100 | 153 | ||
| 101 | if __name__ == '__main__': | 154 | if __name__ == '__main__': |
| 102 | unittest.main() | 155 | unittest.main() |
