Save temporary files in STORAGE_DIR
This makes it trivial to save uploaded files to STORAGE_DIR, as the temporary files Flask saves them in are already there.
This commit is contained in:
parent
0580d3fa65
commit
0389b05b14
@ -1,6 +1,6 @@
|
||||
import logging
|
||||
import os
|
||||
import json
|
||||
import tempfile
|
||||
from bson import ObjectId
|
||||
from datetime import datetime
|
||||
import bugsnag
|
||||
@ -101,7 +101,14 @@ if from_envvar:
|
||||
# configfile doesn't exist, it should error out (i.e. silent=False).
|
||||
app.config.from_pyfile(from_envvar, silent=False)
|
||||
|
||||
# Set the TMP
|
||||
# Set the TMP environment variable to manage where uploads are stored.
|
||||
# These are all used by tempfile.mkstemp(), but we don't knwow in whic
|
||||
# order. As such, we remove all used variables but the one we set.
|
||||
tempfile.tempdir = app.config['STORAGE_DIR']
|
||||
os.environ['TMP'] = app.config['STORAGE_DIR']
|
||||
os.environ.pop('TEMP', None)
|
||||
os.environ.pop('TMPDIR', None)
|
||||
|
||||
|
||||
# Configure logging
|
||||
logging.basicConfig(
|
||||
|
23
tests/test_file_storage.py
Normal file
23
tests/test_file_storage.py
Normal file
@ -0,0 +1,23 @@
|
||||
import os
|
||||
import tempfile
|
||||
|
||||
from common_test_class import AbstractPillarTest
|
||||
|
||||
|
||||
class TempDirTest(AbstractPillarTest):
|
||||
def test_tempfiles_location(self):
|
||||
# After importing the application, tempfiles should be created in the STORAGE_DIR
|
||||
storage = self.app.config['STORAGE_DIR']
|
||||
self.assertEqual(os.environ['TMP'], storage)
|
||||
self.assertNotIn('TEMP', os.environ)
|
||||
self.assertNotIn('TMPDIR', os.environ)
|
||||
|
||||
handle, filename = tempfile.mkstemp()
|
||||
os.close(handle)
|
||||
dirname = os.path.dirname(filename)
|
||||
self.assertEqual(dirname, storage)
|
||||
|
||||
tmpfile = tempfile.NamedTemporaryFile()
|
||||
dirname = os.path.dirname(tmpfile.name)
|
||||
self.assertEqual(dirname, storage)
|
||||
|
Loading…
x
Reference in New Issue
Block a user