mirror of
https://0xacab.org/jvoisin/mat2-web.git
synced 2025-02-24 09:09:58 -05:00
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
import unittest
|
|
import tempfile
|
|
from os import path, environ
|
|
import shutil
|
|
|
|
from unittest.mock import patch
|
|
|
|
from matweb import file_removal_scheduler
|
|
import main
|
|
|
|
|
|
class Mat2WebTestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.upload_folder = tempfile.mkdtemp()
|
|
app = main.create_app()
|
|
app.config.update(
|
|
TESTING=True,
|
|
UPLOAD_FOLDER=self.upload_folder
|
|
)
|
|
self.app = app
|
|
|
|
@patch('matweb.file_removal_scheduler.random.randint')
|
|
def test_removal(self, randint_mock):
|
|
filename = 'test_name.cleaned.jpg'
|
|
environ['MAT2_MAX_FILE_AGE_FOR_REMOVAL'] = '0'
|
|
open(path.join(self.upload_folder, filename), 'a').close()
|
|
self.assertTrue(path.exists(path.join(self.upload_folder, )))
|
|
randint_mock.return_value = 0
|
|
file_removal_scheduler.run_file_removal_job(self.app.config['UPLOAD_FOLDER'])
|
|
self.assertFalse(path.exists(path.join(self.upload_folder, filename)))
|
|
|
|
open(path.join(self.upload_folder, filename), 'a').close()
|
|
file_removal_scheduler.run_file_removal_job(self.app.config['UPLOAD_FOLDER'])
|
|
self.assertTrue(path.exists(path.join(self.upload_folder, )))
|
|
|
|
@patch('matweb.file_removal_scheduler.random.randint')
|
|
def test_non_removal(self, randint_mock):
|
|
filename = u'i_should_no_be_removed.txt'
|
|
environ['MAT2_MAX_FILE_AGE_FOR_REMOVAL'] = '9999999'
|
|
open(path.join(self.upload_folder, filename), 'a').close()
|
|
self.assertTrue(path.exists(path.join(self.upload_folder, filename)))
|
|
randint_mock.return_value = 0
|
|
file_removal_scheduler.run_file_removal_job(self.app.config['UPLOAD_FOLDER'])
|
|
self.assertTrue(path.exists(path.join(self.upload_folder, filename)))
|
|
environ['MAT2_MAX_FILE_AGE_FOR_REMOVAL'] = str(15 * 60)
|
|
|
|
def tearDown(self):
|
|
shutil.rmtree(self.upload_folder)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|
|
|