summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2013-09-06 17:38:37 -0700
committerRussell Keith-Magee <russell@keith-magee.com>2013-09-06 17:38:37 -0700
commit926bc421d9bcf04a79f0026a60d3d4b0570b7fe2 (patch)
treed66afb69a3c0a57c9fb18312577870c8a99b7feb
parentb7451b72edfde0c1ad3c6e33a7a170f16fc53083 (diff)
parent0756a4d664b3d243a70aa53567cec5d8d25e37f7 (diff)
Merge pull request #1566 from adamsc64/ticket_11857
Fixed #11857 -- Added missing 'closed' property on TemporaryFile class.
-rw-r--r--AUTHORS1
-rw-r--r--django/core/files/temp.py9
-rw-r--r--tests/files/tests.py15
3 files changed, 25 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
index 275abc82d3..45ca450d37 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -57,6 +57,7 @@ answer newbie questions, and generally made Django that much better:
Gisle Aas <gisle@aas.no>
Chris Adams
+ Christopher Adams <christopher.r.adams@gmail.com>
Mathieu Agopian <mathieu.agopian@gmail.com>
Roberto Aguilar <roberto@baremetal.io>
ajs <adi@sieker.info>
diff --git a/django/core/files/temp.py b/django/core/files/temp.py
index b607291294..3dcda17a09 100644
--- a/django/core/files/temp.py
+++ b/django/core/files/temp.py
@@ -46,6 +46,15 @@ if os.name == 'nt':
except (OSError):
pass
+ @property
+ def closed(self):
+ """
+ This attribute needs to be accessible in certain situations,
+ because this class is supposed to mock the API of the class
+ tempfile.NamedTemporaryFile in the Python standard library.
+ """
+ return self.file.closed
+
def __del__(self):
self.close()
diff --git a/tests/files/tests.py b/tests/files/tests.py
index b353c1a213..2bc9d566d8 100644
--- a/tests/files/tests.py
+++ b/tests/files/tests.py
@@ -11,6 +11,7 @@ from django.core.files import File
from django.core.files.move import file_move_safe
from django.core.files.base import ContentFile
from django.core.files.uploadedfile import SimpleUploadedFile
+from django.core.files.temp import NamedTemporaryFile
from django.test import TestCase
from django.utils.six import StringIO
@@ -142,6 +143,20 @@ class FileTests(unittest.TestCase):
self.assertTrue(f.closed)
self.assertTrue(orig_file.closed)
+ def test_namedtemporaryfile_closes(self):
+ """
+ The symbol django.core.files.NamedTemporaryFile is assigned as
+ a different class on different operating systems. In
+ any case, the result should minimally mock some of the API of
+ tempfile.NamedTemporaryFile from the Python standard library.
+ """
+ tempfile = NamedTemporaryFile()
+ self.assertTrue(hasattr(tempfile, "closed"))
+ self.assertFalse(tempfile.closed)
+
+ tempfile.close()
+ self.assertTrue(tempfile.closed)
+
def test_file_mode(self):
# Should not set mode to None if it is not present.
# See #14681, stdlib gzip module crashes if mode is set to None