Merge pull request #1566 from adamsc64/ticket_11857
Fixed #11857 -- Added missing 'closed' property on TemporaryFile class.
This commit is contained in:
commit
926bc421d9
1
AUTHORS
1
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>
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue