summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2015-02-21 19:18:54 +0100
committerTim Graham <timograham@gmail.com>2015-02-23 15:26:35 -0500
commite3953de9003c69f3b2485b7f8f56057a0cd4ef1f (patch)
tree81215b380ceb9678e4fe40811b240ba3b1439b96
parentfae31f234823474cd2b81efba56fa714cc34d9cd (diff)
[1.8.x] Normalized usage of the tempfile module.
Specifically stopped using the dir argument. Backport of a8fe12417f778a76837f8e4f8503779f52a396ba from master
-rw-r--r--tests/admin_views/tests.py3
-rw-r--r--tests/file_uploads/tests.py13
-rw-r--r--tests/gis_tests/geoapp/tests.py10
-rw-r--r--tests/model_regress/test_pickle.py6
-rw-r--r--tests/utils_tests/test_autoreload.py19
-rw-r--r--tests/view_tests/tests/test_debug.py16
6 files changed, 31 insertions, 36 deletions
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 2e016515cf..e05a2598b5 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -3322,8 +3322,7 @@ class AdminInlineFileUploadTest(TestCase):
# Set up test Picture and Gallery.
# These must be set up here instead of in fixtures in order to allow Picture
# to use a NamedTemporaryFile.
- tdir = tempfile.gettempdir()
- file1 = tempfile.NamedTemporaryFile(suffix=".file1", dir=tdir)
+ file1 = tempfile.NamedTemporaryFile(suffix=".file1")
file1.write(b'a' * (2 ** 21))
filename = file1.name
file1.close()
diff --git a/tests/file_uploads/tests.py b/tests/file_uploads/tests.py
index 1338add474..4888ca569a 100644
--- a/tests/file_uploads/tests.py
+++ b/tests/file_uploads/tests.py
@@ -50,10 +50,8 @@ class FileUploadTests(TestCase):
self.assertEqual(response.status_code, 200)
def test_large_upload(self):
- tdir = tempfile.gettempdir()
-
file = tempfile.NamedTemporaryFile
- with file(suffix=".file1", dir=tdir) as file1, file(suffix=".file2", dir=tdir) as file2:
+ with file(suffix=".file1") as file1, file(suffix=".file2") as file2:
file1.write(b'a' * (2 ** 21))
file1.seek(0)
@@ -262,11 +260,8 @@ class FileUploadTests(TestCase):
"Got a long file name (%s characters)." % len(got))
def test_file_content(self):
- tdir = tempfile.gettempdir()
-
file = tempfile.NamedTemporaryFile
- with file(suffix=".ctype_extra", dir=tdir) as no_content_type, \
- file(suffix=".ctype_extra", dir=tdir) as simple_file:
+ with file(suffix=".ctype_extra") as no_content_type, file(suffix=".ctype_extra") as simple_file:
no_content_type.write(b'no content')
no_content_type.seek(0)
@@ -291,10 +286,8 @@ class FileUploadTests(TestCase):
def test_content_type_extra(self):
"""Uploaded files may have content type parameters available."""
- tdir = tempfile.gettempdir()
-
file = tempfile.NamedTemporaryFile
- with file(suffix=".ctype_extra", dir=tdir) as no_content_type, file(suffix=".ctype_extra", dir=tdir) as simple_file:
+ with file(suffix=".ctype_extra") as no_content_type, file(suffix=".ctype_extra") as simple_file:
no_content_type.write(b'something')
no_content_type.seek(0)
diff --git a/tests/gis_tests/geoapp/tests.py b/tests/gis_tests/geoapp/tests.py
index e49dd5118c..0acc2bd210 100644
--- a/tests/gis_tests/geoapp/tests.py
+++ b/tests/gis_tests/geoapp/tests.py
@@ -1,7 +1,7 @@
from __future__ import unicode_literals
import re
-from tempfile import NamedTemporaryFile
+import tempfile
from django.contrib.gis import gdal
from django.contrib.gis.geos import HAS_GEOS
@@ -219,10 +219,10 @@ class GeoModelTest(TestCase):
self.assertIn('"point": "%s"' % houston.point.ewkt, result)
# Reload now dumped data
- with NamedTemporaryFile(mode='w', suffix='.json') as tempfile:
- tempfile.write(result)
- tempfile.seek(0)
- call_command('loaddata', tempfile.name, verbosity=0)
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.json') as tmp:
+ tmp.write(result)
+ tmp.seek(0)
+ call_command('loaddata', tmp.name, verbosity=0)
self.assertListEqual(original_data, list(City.objects.all().order_by('name')))
diff --git a/tests/model_regress/test_pickle.py b/tests/model_regress/test_pickle.py
index aa7002ab27..996c2221d6 100644
--- a/tests/model_regress/test_pickle.py
+++ b/tests/model_regress/test_pickle.py
@@ -80,14 +80,16 @@ print(article.headline)"""
article_text="This is an article",
)
- with NamedTemporaryFile(mode='w+', suffix=".py", dir='.') as script:
+ with NamedTemporaryFile(mode='w+', suffix=".py") as script:
script.write(script_template % pickle.dumps(a))
script.flush()
+ pythonpath = [os.path.dirname(script.name)] + sys.path
env = {
# Needed to run test outside of tests directory
- str('PYTHONPATH'): os.pathsep.join(sys.path),
+ str('PYTHONPATH'): os.pathsep.join(pythonpath),
# Needed on Windows because http://bugs.python.org/issue8557
str('PATH'): os.environ['PATH'],
+ str('TMPDIR'): os.environ['TMPDIR'],
str('LANG'): os.environ.get('LANG', ''),
}
if 'SYSTEMROOT' in os.environ: # Windows http://bugs.python.org/issue20614
diff --git a/tests/utils_tests/test_autoreload.py b/tests/utils_tests/test_autoreload.py
index 3fd5e426e3..ff4cf63e1c 100644
--- a/tests/utils_tests/test_autoreload.py
+++ b/tests/utils_tests/test_autoreload.py
@@ -5,6 +5,7 @@ from importlib import import_module
from django import conf
from django.contrib import admin
from django.test import TestCase, override_settings
+from django.test.utils import extend_sys_path
from django.utils._os import npath, upath
from django.utils.autoreload import gen_filenames
@@ -88,12 +89,12 @@ class TestFilenameGenerator(TestCase):
self.assertFalse(any(f.endswith('.pyc') for f in gen_filenames()))
def test_deleted_removed(self):
- fd, filepath = tempfile.mkstemp(dir=os.path.dirname(upath(__file__)), suffix='.py')
- try:
- _, filename = os.path.split(filepath)
- import_module('.%s' % filename.replace('.py', ''), package='utils_tests')
- self.assertIn(npath(filepath), gen_filenames())
- finally:
- os.close(fd)
- os.remove(filepath)
- self.assertNotIn(filepath, gen_filenames())
+ dirname = tempfile.mkdtemp()
+ filename = os.path.join(dirname, 'test_deleted_removed_module.py')
+ with open(filename, 'w'):
+ pass
+ with extend_sys_path(dirname):
+ import_module('test_deleted_removed_module')
+ self.assertIn(npath(filename), gen_filenames())
+ os.unlink(filename)
+ self.assertNotIn(filename, gen_filenames())
diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py
index 6c04940cf5..650cc5d268 100644
--- a/tests/view_tests/tests/test_debug.py
+++ b/tests/view_tests/tests/test_debug.py
@@ -9,7 +9,7 @@ import os
import re
import shutil
import sys
-from tempfile import NamedTemporaryFile, mkdtemp, mkstemp
+import tempfile
from unittest import skipIf
from django.core import mail
@@ -142,8 +142,8 @@ class DebugViewTests(TestCase):
def test_template_loader_postmortem(self):
"""Tests for not existing file"""
template_name = "notfound.html"
- with NamedTemporaryFile(prefix=template_name) as tempfile:
- tempdir = os.path.dirname(tempfile.name)
+ with tempfile.NamedTemporaryFile(prefix=template_name) as tmpfile:
+ tempdir = os.path.dirname(tmpfile.name)
template_path = os.path.join(tempdir, template_name)
with override_settings(TEMPLATES=[{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
@@ -155,9 +155,9 @@ class DebugViewTests(TestCase):
@skipIf(sys.platform == "win32", "Python on Windows doesn't have working os.chmod() and os.access().")
def test_template_loader_postmortem_notreadable(self):
"""Tests for not readable file"""
- with NamedTemporaryFile() as tempfile:
- template_name = tempfile.name
- tempdir = os.path.dirname(tempfile.name)
+ with tempfile.NamedTemporaryFile() as tmpfile:
+ template_name = tmpfile.name
+ tempdir = os.path.dirname(tmpfile.name)
template_path = os.path.join(tempdir, template_name)
os.chmod(template_path, 0o0222)
with override_settings(TEMPLATES=[{
@@ -170,7 +170,7 @@ class DebugViewTests(TestCase):
def test_template_loader_postmortem_notafile(self):
"""Tests for not being a file"""
try:
- template_path = mkdtemp()
+ template_path = tempfile.mkdtemp()
template_name = os.path.basename(template_path)
tempdir = os.path.dirname(template_path)
with override_settings(TEMPLATES=[{
@@ -295,7 +295,7 @@ class ExceptionReporterTests(TestCase):
reporter = ExceptionReporter(None, None, None, None)
for newline in ['\n', '\r\n', '\r']:
- fd, filename = mkstemp(text=False)
+ fd, filename = tempfile.mkstemp(text=False)
os.write(fd, force_bytes(newline.join(LINES) + newline))
os.close(fd)